Обновите SDL1.2 SDL_GetWMInfo до SDL2 SDL_GetWindowWMInfo

Я пытаюсь обновить код C++ в пользовательской версии DOSBox с SDL1.2 до SDL2. Линии, которые меня расстроили, таковы:

SDL_SysWMinfo systemInfo; 
SDL_VERSION(&systemInfo.version);

if(SDL_GetWindowWMInfo(window, &systemInfo) !=1) return;
if (!::OpenClipboard(systemInfo.info.win.window)) return;

SDL_GetWindowWMInfo определяется в SDL_syswm.h следующим образом:

typedef struct SDL_SysWMinfo SDL_SysWMinfo;
extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window, SDL_SysWMinfo * info);

Когда я пытаюсь встраивать в Visual Studio 2010, я получаю эту ошибку, возникающую в третьей строке кода выше:

1>  sdlmain.cpp
1>..\src\gui\sdlmain.cpp(2966): error C2065: 'window' : undeclared identifier

Я думаю, что ответ здесь:

https://gamedev.stackexchange.com/questions/82068/how-can-i-obtain-a-window-handle-in-sdl-2-0-3

но я новичок и не могу понять, как адаптировать это к моему собственному коду. Если кто-нибудь захочет помочь начинающему, я буду благодарен.

1 ответ

Решается добавлением первой строки (как это ясно объясняется в вики SDL):

SDL_Window* window;
SDL_SysWMinfo systemInfo; 
SDL_VERSION(&systemInfo.version);

if(SDL_GetWindowWMInfo(window, &systemInfo) !=1) return;
if (!::OpenClipboard(systemInfo.info.win.window)) return;
Другие вопросы по тегам