Работа над приложением Qt в Windows.Я включаю QVboxLayout только в мой исходный файл, и это вызывает ошибки, потому что его макрос перезаписывает имя моего метода.
foo.hpp
class foo
{
ChangeMenu();
}
foo.cpp
#include "foo.hpp"
#include "QVBoxLayout" // <--- this includes winuser.h
foo::ChangeMenu(){};
Теперь, что происходит, так это то, что winuser.h имеет макрос
#ifdef UNICODE
#define ChangeMenu ChangeMenuW
#else
#define ChangeMenu ChangeMenuA
#endif // !UNICODE
Это меняетмое определение функции для ChangeMenuW, но мое объявление все еще ChangeMenu.
Как мне решить эту проблему?Как winuser.h может определить такое «нормальное» имя как макрос?
Версия winuser.h - это «windows kits \ 10 \ include \ 10.0.16299.0»