2009-11-09 1 views
1

Je cours "QUdpSocket :: ShareAddress" sur mon application QT mais ShareAddress est ignoré par windows. J'essaie donc de résoudre ce problème en identifiant le système d'exploitation au moment de l'exécution. J'ai entendu quelques informations sur l'identificateur de la fenêtre, mais je n'ai pas trouvé de solution pour résoudre mon problème. S'il y a un conseil, ce serait très apprécié. Merci.Comment obtenir des informations sur le système d'exploitation que ce soit LINUX ou WINDOWS?

Répondre

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

#ifdef Q_OS_LINUX 
// linux 
#endif 

#ifdef Q_OS_WIN32 
// win 
#endif 

Voir la documentation QtGlobal pour plus d'informations.

+0

Merci pour votre aide. Je vais l'essayer maintenant. – KIM

+0

Cela fonctionne. J'ai trouvé des articles pour C++ aussi. Merci. – KIM

2

Ce n'est pas toujours la solution la plus élégante, mais il est certainement efficace d'utiliser une définition de préprocesseur pour vérifier la plate-forme au moment de la compilation.

Exemple:

#ifdef _WIN32 
#endif 
+0

Merci pour votre aide. N'est-ce pas _WIN32 pour QT mais C++? – KIM

+1

Oui, ce n'est pas défini par Qt spécifique. Vous pouvez obtenir la liste à http://predef.sourceforge.net/preos.html – Wildcat

+0

Ouais, il y avait. Merci de votre aide. – KIM