获取SDL 2应用程序的窗口句柄
我想获得SDL2窗口的句柄,以便与WinApi一起使用。
我使用以下代码检索该句柄:
/* All the SDL initalisation... */ SDL_Window* window = SDL_CreateWindow("My Window", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, RESX, RESY, SDL_WINDOW_SHOWN); SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); if (window == NULL || renderer == NULL) { MessageBox(NULL, L"SDL initialisation error", NULL, MB_OK); exit(-1); } SDL_SysWMinfo wmInfo; SDL_GetWindowWMInfo(window, &wmInfo); HWND hwnd = wmInfo.info.win.window;
但此时, hwnd
地址是0xcccccccc
(未使用)。
我做错什么了吗?
备注部分中的SDL Wiki页面表示必须在使用前初始化info.version
。 代码示例建议使用SDL_VERSION(&info.version);
在查询WM信息之前。
SDL_SysWMinfo wmInfo; SDL_VERSION(&wmInfo.version); SDL_GetWindowWMInfo(window, &wmInfo); HWND hwnd = wmInfo.info.win.window;