在 SDL2 中绕过 "int main(int argc, char** argv)"

Bypassing "int main(int argc, char** argv)" in SDL2

我正在使用 C++ 开发跨平台 Opengl 4.5/DirectX 库;对于 mac osx 和 linux,我想将 SDL2 与 ogl 渲染器一起使用,对于 windows,我想使用 wgl 实现 directx 渲染器。问题是 SDL 需要访问 "int main(int argc, char** args)" 并且不会让我定义 WinMain 因为它在 SDLmain 中有一些初始化代码。有什么建议吗?

PS:我收到错误

unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) in VS2015.

您可能希望在包含 SDL.h 之前定义 SDL_MAIN_HANDLED,例如

#define SDL_MAIN_HANDLED
#include "SDL.h"

https://wiki.libsdl.org/SDL_SetMainReady