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