Bonjour/Bonsoir !
Pour les besoins d'un logiciel que je développe, j'ai besoin de savoir sous quel OS tourne actuellement ledit logiciel, pour connaître la forme des séparateurs de dossiers, \ sous Windows, / pour presque tout le reste...
J'ai donc eu l'idée (que je pensais géniale... ) de tester les macros définies par le compilateur en fonction de l'OS, puis d'en créer un nouvelle qui prendrait la valeur / ou \ en fonction du résultat ! Ce qui a donné le code suivant :
Évidemment, le problème semble évident : le préprocesseur prend ça pour une nouvelle ligne, me dit que mon #if n'est pas terminé (forcément, il ne voit pas le #endif), et me crache à la gueule en me demandant d'aller corriger mon code !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #if !defined(_WIN16) || \ !defined(_WIN32) || \ !defined(_WIN64) #define FOLDER_SEPARATOR / #else #define FOLDER_SEPARATOR \ #endif
J'ai essayé de doubler l'antislash, de le transformer en chaîne de caractères avec un # devant, mais rien...
Je remercie d'avance ceux qui auraient une idée et qui voudront bien prendre le temps de m'aider !
Partager