[완료] 잘못된 namespace의 함수 호출
qt로 프로그래밍을 하다가
도저히 소켓쪽이 잘 안되서 소켓쪽만 winsock을 쓰고 있습니다.
(내일이 발표라... 시간이 많이 없습니다. ^^;;)
아웃룩 익스프레스 같은 메일 클라이언트 인데요.
함수들을 따로 따로 만들어서 테스트 했을때는 잘 됩니다.
pop로 읽어오는 함수, smtp로 보내는 함수 등...
qt로 ui를 만들고 거기서 제가 만든 함수들을 사용하고 있습니다.
정확히 frame 이라는 클래스 안에서 함수들을 사용하고 있는데요,
컴파일을 할때, 다른건 다 문제가 없는데 connect 함수가 문제가 됩니다.
frame.cpp: In member function `int frame::msg_read()':
frame.cpp:170: error: no matching function for call to `frame::connect(SOCKET&,
SOCKADDR*, unsigned int)'
C:/src/Qt/include/QtCore/../../src/corelib/kernel/qobject.h:181: note: candidate
s are: static bool QObject::connect(const QObject*, const char*, const QObject*,
const char*, Qt::ConnectionType)
C:/src/Qt/include/QtCore/../../src/corelib/kernel/qobject.h:283: note:
bool QObject::connect(const QObject*, const char*, const char*, Qt::Conne
ctionType) const
mingw32-make[1]: *** [release\frame.o] Error 1
mingw32-make[1]: Leaving directory `C:/src/ssmc'
mingw32-make: *** [release] Error 2
저는 winsock2.h에 선언된 connect() 함수를 사용하려고 한건데,
frame 이라는 클래스 안에서 사용되서 거기서 찾습니다.
frame 이 이래저래 상속 받아서 QObject 라는 클래스를 상속받고 있고
거기에 connect()가 있는 것 같습니다.
어떻게 해결하면 될까요?
도와주세요.
winsock의 connect는 global
winsock의 connect는 global namespace에 있으니
::connect()
정말 감사하옵니다.
시간이 별로 없어서 많이 걱정했는데
이렇게 정확한 답변을 빨리도 달아주시다니
정말 감사합니다. ^^
global namespace란건 저렇게 ::만 찍으면 되는거군요
많이 배웠습니다. ^^
댓글 달기