Я говорю о том, чтобы найти способ избежать макросов в <windows.h>
от загрязнения любого проекта, который я пишу.
Выдержки из windows.h
:
#ifdef UNICODE
#define LoadImage LoadImageW
#else
#define LoadImage LoadImageA
#endif // !UNICODE
#ifdef UNICODE
#define GetMessage GetMessageW
#else
#define GetMessage GetMessageA
#endif // !UNICODE
С большинством макросов (более 99%) у меня все в порядке, но с некоторыми из них я просто не мог найти способ избежать.
Моя идея заключается в том, что, поскольку я всегда квалифицирую вызовы функций в моей конкретной среде, например, ImageTool::LoadImage
, Visual Studio должен иметь достаточно подсказок, чтобы я не ссылался на API Windows, которые все находятся в корневом пространстве имен, т.е. ::LoadImage
. Но система MACRO, похоже, не настолько умна.
Есть ли опция компилятора или препроцессора, которая просто включит это?