2011-07-06 5 views
1

원격 서버와 통신하는 API를 사용하고 있으며 C에서만 사용 가능합니다. 매우 구체적인 프로토콜이기 때문에 다시 작성할 수 없습니다. 너무 많은 노력이 필요합니다.Qt와 함께 winapi 소켓 사용

제공된 API는 표준 Winsock2 체계를 사용합니다. 그래서 그걸로 작업하기 위해서 내 프로젝트의 .pro 파일에

LIBS += C:\\QtSDK\\mingw\\lib\\libws2_32.a 

을 추가했습니다.

그러나 프로그램이 어떤 WinSock 함수 (심지어 WSAStartup)에 액세스 할 때 오류 메시지 SIGILL -- Illegal Instruction과 함께 즉시 충돌합니다. 내가 뭘 잘못하고 있니?

+0

-1 "즉시 충돌합니다." 하나님의 사랑을 위해, 진정한 오류 메시지가 무엇인지 말해주십시오! –

+0

SIGILL - 불법적 인 지시. – Ivan

답변

0

이 API를 직접 컴파일하거나 객체/헤더 쌍으로 사용합니까? 혼자서라면 QtSDK\MinGW이 맞습니까? 너는 MinGW의 winsock 헤더를 가리키고 있니?

좋은 첫 번째 테스트는 Qt의 qmake없이 QtSDK\MinGW을 독립 실행 형으로 사용하여 간단한 드라이버 main을이 라이브러리로 컴파일하고 컴파일하는 것이 좋습니다. 으로 만들면 Qt 프로젝트로 이식하는 것이 쉬워야합니다.

+0

소스 + 헤더로 추가하므로 프로젝트와 함께 컴파일됩니다. – Ivan

+0

Qt없이 별도로 컴파일하여 제대로 작동하도록 할 수 있습니까? –