0

我正在尝试将自定义版本的 DOSBox 中的一些 C++ 代码从 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

但我是一个初学者,无法弄清楚如何将其适应我自己的代码。如果有人愿意帮助一个完整的初学者,我将不胜感激。

4

1 回答 1

0

通过添加第一行来解决(正如它在 SDL wiki 中清楚地解释的那样):

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

if(SDL_GetWindowWMInfo(window, &systemInfo) !=1) return;
if (!::OpenClipboard(systemInfo.info.win.window)) return;
于 2016-11-18T02:27:20.763 回答