在 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.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
获得屏幕分辨率 w/o?还有其他想法吗?
好的!我意识到我做错了什么...
在链接阶段,我使用了以下库,链接器抱怨找不到 WinMain
函数。
-lSDL2main
-lSDL2
然后我添加了 mingw32 库,如下所示,问题就解决了(我认为库的顺序很重要)。
-lmingw32
-lSDL2main
-lSDL2
正在使用 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
获得屏幕分辨率 w/o?还有其他想法吗?
好的!我意识到我做错了什么...
在链接阶段,我使用了以下库,链接器抱怨找不到 WinMain
函数。
-lSDL2main
-lSDL2
然后我添加了 mingw32 库,如下所示,问题就解决了(我认为库的顺序很重要)。
-lmingw32
-lSDL2main
-lSDL2