我使用SDL和OpenGL制作了一些软件,现在我想为输入添加一个图形界面,比如一些文本框和按钮。我意识到这可能必须在一个单独的窗口中,我不介意,但我不知道如何在我的项目中合并Win32功能。我尝试从
更改主函数的定义int main(int argc, char **argv)
{
...
}
到
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, LPSTR lpCmdLine, int cmdShow)
{
...
}
但我收到的错误是:
LNK2005: _WinMain@16 already defined in SDL2main.lib (SDL_windows_main.obj)
LNK2005: _WinMain@16 already defined in Source.obj
LNK2019: unresolved external symbol _SDL_main referenced in function _main
我正在使用Visual Studio 2012。 有没有办法解决这个问题,还是有另一种方法在c ++中创建表单?
由于
答案 0 :(得分:2)
SDL将main
定义为宏。这就像最终的恐怖表演。当然,将微软的WinMain
怪物混合在一起似乎是合适的,但任何事情都不需要它。
而是保留main
。
如果我已经承诺使用SDL(考虑到上述情况,我永远不会这样做),那么我首先要查看SDL提供的文本框和按钮等方式。如果没有,则只需正确包含<windows.h>
(首先定义STRICT
和NOMINMAX
以及UNICODE
),然后使用API。但为此,我建议首先通过创建一些纯API程序来学习API,而不会干扰SDL。