2009-11-09 66 views
1

我在QT应用程序上运行“QUdpSocket :: ShareAddress”,但窗口忽略了ShareAddress。所以我试图通过在运行时识别操作系统来解决这个问题。 我听说过一些关于窗口版本识别的信息,但我看不到任何解决方案来解决我的问题。 如果有任何建议,将非常感激。谢谢。如何获取操作系统信息,无论是LINUX还是WINDOWS?

回答

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

#ifdef Q_OS_LINUX 
// linux 
#endif 

#ifdef Q_OS_WIN32 
// win 
#endif 

有关更多信息,请参阅QtGlobal文档。

+0

感谢您的帮助。我现在就试试。 – KIM 2009-11-09 08:08:18

+0

它确实有效。我也找到了C++的项目。谢谢。 – KIM 2009-11-09 08:36:59

2

它并不总是最优雅的解决方案,但在编译时使用预处理器定义来检查平台是绝对有效的。

例子:

#ifdef _WIN32 
#endif 
+0

感谢您的建议。对于QT和C++,是不是_WIN32? – KIM 2009-11-09 08:09:38

+1

是的,它不是Qt的具体定义。你可以在http://predef.sourceforge.net/preos.html获得他们的列表。 – Wildcat 2009-11-09 08:55:43

+0

是的,有。谢谢你的帮助。 – KIM 2009-11-09 18:11:57

相关问题