2009-11-09 4 views
1

QT 응용 프로그램에서 "QUdpSocket :: ShareAddress"를 실행하고 있지만 ShareAddress는 Windows에서 무시됩니다. 그래서 런타임에 OS를 식별하여이 문제를 해결하려고합니다. 윈도우 버전 식별기에 대한 몇 가지 정보를 들었지만 문제를 해결할 수있는 해결책이 없습니다. 조언이 있으면 매우 감사하겠습니다. 감사.리눅스 또는 Windows 여부에 상관없이 OS 정보를 얻는 방법은 무엇입니까?

답변

13
#include <QtGlobal> 
... 
#ifdef Q_OS_MAC 
// mac 
#endif 

#ifdef Q_OS_LINUX 
// linux 
#endif 

#ifdef Q_OS_WIN32 
// win 
#endif 

자세한 내용은 QtGlobal 문서를 참조하십시오.

+0

감사합니다. 나는 지금 그것을 시도 할 것이다. – KIM

+0

작동하지 않습니다. 나는 C++ 항목도 발견했다. 감사. – KIM

2

항상 가장 좋은 해결책은 아니지만, 컴파일시에 플랫폼을 확인하기 위해 전 처리기 정의를 사용하는 것이 효과적입니다.

예 : 당신의 도움에 대한

#ifdef _WIN32 
#endif 
+0

귀하의 조언에 감사드립니다. _WIN32가 QT가 아니라 C++입니까? – KIM

+1

예, Qt 관련 정의가 아닙니다. http://predef.sourceforge.net/preos.html – Wildcat

+0

에서 목록을 얻을 수 있습니다. 당신의 도움을 주셔서 감사합니다. – KIM

관련 문제