Adaptations entre Windows et Linux

Adaptations entre Windows et Linux - C - Programmation

Marsh Posté le 03-02-2004 à 10:48:08    

Bon je sais pas si je poste sous le bon forum et vous prie de m'excuser si ce n'est pas le cas...
 
Voilà mon problème est assez simple, j'ai develloppé un programme C sous windows et maintenant je voudrai le compiler aussi sous Linux. Le problème c que j'utilise des fonctions de bas de niveau qui sont préfixés par "_" alors que sous linux se "_" doit disparaitre. Comme je compte encore travailler sur le source je voudrai donner des commandes au préprocesseur pour qu'il m'enlève le "_" devant les commandes de bas niveau sous linux...
 
G commencé à le faire avec des  
 
#ifdef NT
_open truc truc
#else
open truc truc
#endif
 
mais je trouve ça très lourd

Reply

Marsh Posté le 03-02-2004 à 10:48:08   

Reply

Marsh Posté le 03-02-2004 à 10:51:17    

ben fais un truc genre :
 

Code :
  1. int monOpen(...)
  2. {
  3. #ifdef windouze
  4. _open(..)
  5. #else
  6. open(..)
  7. }


 
et dans le reste du code tu utilises monOpen

Reply

Marsh Posté le 03-02-2004 à 10:52:15    

c pas mal... mais c vrai que je cherchai qqchose de plus propre genre une macro ou un truc dans ce genre... g pas trop d'idées mais j'imagine que ça doit exister

Reply

Marsh Posté le 03-02-2004 à 10:54:14    

#ifdef windouze
#define open _open
#endif
 
mais alors niveau propreté, bonjour

Reply

Marsh Posté le 03-02-2004 à 12:43:04    

merci bcp ça me va tout à fait!

Reply

Marsh Posté le 03-02-2004 à 13:53:02    

Ant-103 a écrit :

merci bcp ça me va tout à fait!


 
Mais, "open" sans _ devant est parfaitement compatible windows...
 
EDIT : et c'est souvent le cas pour toutes ces fonctions que la doc MSDN décrit entant que version préfixée.


Message édité par El_gringo le 03-02-2004 à 13:55:17

---------------
Les Vers Solitaires, on aime ... ou pas !
Reply

Marsh Posté le 03-02-2004 à 16:30:54    

Pour les _create, _open c nikel maintenant mais j'ai des problèmes avec les
 
_S_IWRITE et _S_IREAD
 
et là la technique marche pas...

Reply

Marsh Posté le 15-02-2004 à 16:25:19    

c vraiment si simple que ca pour faire passer un prgm de WIN32 a LINUX ??? #ifdef etc ...

Reply

Marsh Posté le 15-02-2004 à 17:36:57    

ben ca depend des libs que t'utilise aussi hein.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed