Wie kann ich dem Präprozessor mitteilen, dass er ein bestimmtes Makro nicht ersetzen soll?Verhindern, dass C-Präprozessor eine bestimmte Makrosubstitution ausführt
Das spezifische Problem ist das folgende: Windows-Headerdateien definieren das GetMessage-Makro.
Meine C++ Header-Dateien mit meiner API haben eine GetMessage-Methode. Ich möchte meine Methode nicht umbenennen. Aber wenn Sie die API unter Windows verwenden, ersetzt windows.h den GetMessage-Methodenaufruf durch GetMessageA.
Das Ausführen von #undef GetMessage ist nicht gut, da der Code, der die API verwendet, auch Windows GetMessage verwendet. –
Ah, ein weiteres Beispiel für die wahllose Verwendung von Makros durch Windows SDK, die alle Namespaces (und nicht nur die Namespace-Funktion von C++) überlisten. –
@vincent: siehe don.newfelds Kommentar in ShoeLaces '#undef GetMessage' Antwort –