Fichier Header (.h) Dynamique
Résolu
yougi
Messages postés
27
Statut
Membre
-
yougi Messages postés 27 Statut Membre -
yougi Messages postés 27 Statut Membre -
Bonjour,
Je cherche à réaliser un petit programme en C portable sur tous les OS. Mais j'ai rencontré pas mal de problème :
Exemple :
L'appel de la fonction F dépend forcement du Système d'Exploitation où la compilation se fait. Donc,
- Pour OS1 il faut inclure la bibliothèque X
- Pour OS2 il faut inclure la bibliothèque Y
- ...
les questions qui se posent sont :
- Est que c'est possible de faire un test pour détecter l'OS avant d'inclure la bibliothèque concernée ? Si oui, comment procéder?
- J'ai pensé à écrire un Fichier *.h qui va dépendre du test... mais j'arrive pas. Y-a-t-il une façon pour rendre mon fichier en tête dynamique... ?
Merci chers développeur ^^
Je cherche à réaliser un petit programme en C portable sur tous les OS. Mais j'ai rencontré pas mal de problème :
Exemple :
L'appel de la fonction F dépend forcement du Système d'Exploitation où la compilation se fait. Donc,
- Pour OS1 il faut inclure la bibliothèque X
- Pour OS2 il faut inclure la bibliothèque Y
- ...
les questions qui se posent sont :
- Est que c'est possible de faire un test pour détecter l'OS avant d'inclure la bibliothèque concernée ? Si oui, comment procéder?
- J'ai pensé à écrire un Fichier *.h qui va dépendre du test... mais j'arrive pas. Y-a-t-il une façon pour rendre mon fichier en tête dynamique... ?
Merci chers développeur ^^
Configuration: Windows Vista Firefox 3.5.7
2 réponses
-
Salut.
C'est possible grace aux macro du préprocesseur.
Normalement, tu peux connaitre l'OS et plein d'autre choses car le compilateur défini certaines macros ou non.
Par exemple, sous Linux, il y a __LINUX__ __LINUX_32__ etc. sous win __WIN32__
Tu peux même faire des tests sur la version du compilateur. par exmeple :#ifdef __LINUX__ // fonction Linux #elif defined __WIN32__ //fonction windows #else #warning erreur, OS non supporté // je ne suis pas certain de la syntaxe de la dernière ligne en warning #endif
à moins que ce ne soit pas ce que tu cherches, dans ce cas là, je t'incite à t'exprimer mieux. -
Oui c'est exactement ce que je cherche..... Mercii "Char Snipeur" Mon problème est résolu !!