刚刚使用 SDL2 开发一个小项目...
系统信息:Windows
应用信息:使用 C(纯 C,无 c++)、mingw-x64 和 SDL2。
现在;
首先,SDL.h
需要将main
函数重命名为WinMain
。
另一方面,在获取屏幕分辨率时,我倾向于使用 GetSystemMetrics
函数,该函数需要将 windows.h
包含在预处理器部分中此时,我代码中的 WinMain
与之前在 winbase.h
中声明的 WinMain
发生冲突。当我同时使用(SDL.h
和 windows.h
)时,编译器响应:
previous declaration of 'WinMain' was here:
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd);
这是因为,WinMain
是在 winbase.h
中的某个位置声明的,它是通过 windows.h
自动包含的。
有没有办法不用使用GetSystemMetrics
/windows.h
来获取屏幕分辨率?还有其他想法吗?
最佳答案
好的!我已经意识到我做错了什么......
在链接阶段,我使用了以下库,链接器提示找不到 WinMain
函数。
-lSDL2main
-lSDL2
然后我添加了 mingw32 库,如下所示,问题得到解决(我认为库的顺序很重要)。
-lmingw32
-lSDL2main
-lSDL2
关于c - 在 C 中获取屏幕分辨率,w/o "windows.h",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53408985/