Трудно найти подходящее название для этой проблемы. Во всяком случае ...Библиотека другого #define Именование конфликта
Я сейчас работаю над GUI для своих игр в SDL. Я закончил рисование программного обеспечения и был на моем пути, чтобы начать с его части OpenGL, когда возникла странная ошибка. Я включил заголовок «SDL/SDL_opengl.h» и скомпилировал. Он выбрасывает «ошибку C2039:« DrawTextW »: не является членом« GameLib :: FontHandler », что является достаточно простой ошибкой, но у меня нет ничего, называемого DrawTextW, только FontHandler :: DrawText. Я ищу DrawTextW и нахожу его в вызове #define в заголовке «WinUser.h»!
//WinUser.h
#define DrawText DrawTextW
Видимо он заменяет мой DrawText с DrawTextW! Как я могу помешать ему перекинуться на мой код?
Это незначительная вещь, которая меняет имя моей собственной функции, но конфликты имен, подобные этому, выглядят довольно опасными, и я действительно хотел бы знать, как избежать их всех вместе.
Cheers!
Да, Windows.h действительно сталкивается. Я предполагаю, что справедливо жаловаться на то, что он не компилирует без расширений ms/MSS, но также разумно, что заголовок, специфичный для ms, должен (требует этих расширений). – bobobobo