[완료] 잘못된 namespace의 함수 호출

ensky0의 이미지

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 namespace에 있으니
::connect()

ensky0의 이미지

시간이 별로 없어서 많이 걱정했는데

이렇게 정확한 답변을 빨리도 달아주시다니

정말 감사합니다. ^^

global namespace란건 저렇게 ::만 찍으면 되는거군요

많이 배웠습니다. ^^