不使用“ windows.h”以C语言获取屏幕分辨率

时间:2018-11-21 09:33:37

标签: c sdl-2 mingw-w64

只需使用SDL2进行小型项目...

系统信息:Windows

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

现在;

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

另一方面,在获得屏幕分辨率时,我倾向于使用GetSystemMetrics函数,该函数要求windows.h包含在预处理器部分中,此时{{1 }}在我的代码中与先前在WinMain中声明的WinMain冲突。当我同时使用winbase.hSDL.h时,编译器会响应:

  

以前的'WinMain'声明在这里:windows.h

这是因为int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd);被声明在WinMain中的某个位置,而winbase.h是通过windows.h自动包含的。

是否有一种方法可以使用GetSystemMetrics / windows.h来不使用屏幕分辨率?还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

好!我意识到我做错了...

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

-lSDL2main
-lSDL2

然后我添加了mingw32库,如下所示,问题得以解决(库的顺序确实很重要)。

-lmingw32
-lSDL2main
-lSDL2