在 C 中获取屏幕分辨率,w/o "windows.h"

Getting screen resolution in C, w/o "windows.h"

正在使用 SDL2 处理一个小项目...

系统信息:Windows

应用程序信息:使用 C(纯 C,无 C++)、mingw-x64 和 SDL2。

现在;

首先,SDL.h需要将main函数重命名为WinMain

另一方面,在获取屏幕分辨率时,我倾向于使用 GetSystemMetrics 函数,这需要 windows.h 包含在预处理器部分,此时,WinMain 在我的代码中与之前在 winbase.h 中声明的 WinMain 冲突。当我同时使用(SDL.hwindows.h)时,编译器响应:

previous declaration of 'WinMain' was here: int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd);

那是因为,WinMainwinbase.h 的某处声明,它通过 windows.h.

自动包含

有没有办法使用 GetSystemMetrics / windows.h 获得屏幕分辨率 w/o?还有其他想法吗?

好的!我意识到我做错了什么...

在链接阶段,我使用了以下库,链接器抱怨找不到 WinMain 函数。

-lSDL2main
-lSDL2

然后我添加了 mingw32 库,如下所示,问题就解决了(我认为库的顺序很重要)。

-lmingw32
-lSDL2main
-lSDL2