Ce que je veux dire, c’est que, dans chacun de mes fichiers source, je dois insérer #define NOGDI pour empêcher Windows.h d’inclure les définitions GDI (car BITMAP définit les conflits avec les miens).
par exemple.
#define NOGDI
#include <windows.h>
Malheureusement, je dois le faire dans chaque fichier source séparé qui inclut windows.h, ce que je ne veux pas faire .. .. J'utilise Visual Studio 2005, puis-je le configurer de manière à ce que # définisse quelque chose globalement? (c'est-à-dire dans tous les fichiers source).
Paramètres du projet -> C/C++ -> Préprocesseur -> Définitions du préprocesseur
Ici, vous pouvez définir des symboles qui s'appliquent globalement à tout le code source de votre projet.
J'avais configuré la définition nécessaire pour l'ensemble du projet, comme décrit dans Paramètres du projet -> C/C++ -> Préprocesseur -> Définitions du préprocesseur
Mais néanmoins cela n'a pas fonctionné!
Finalement, il s’est avéré que le problème était coché dans la case NoInherit, "Hériter des valeurs par défaut du parent ou du projet"
Dans la ligne de dialogue 'Définitions du préprocesseur', elle est vue comme suit:
Vérifié la chose en arrière et le définir finalement reconnu.
Pour VS2015, j'ai modifié le fichier .vcxproj
et ajouté une section comme celle-ci:
<Project ToolsVersion="12.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>MY_VARIABLE=SOMETHING</PreprocessorDefinitions>