简体   繁体   English

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

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

I'm working on an crossplatform Opengl 4.5 / DirectX library in C++;我正在使用 C++ 开发跨平台的 Opengl 4.5 / DirectX 库; for mac osx and linux, I would like to use SDL2 with an ogl renderer, and for windows, I would like to implement a directx renderer with wgl.对于 mac osx 和 linux,我想使用带有 ogl 渲染器的 SDL2,对于 Windows,我想用 wgl 实现一个 directx 渲染器。 Problem is that SDL requires access to "int main(int argc, char** args)" and won't let me define WinMain because of some init code it has in SDLmain.问题是 SDL 需要访问“int main(int argc, char** args)”并且不允许我定义 WinMain,因为它在 SDLmain 中有一些初始化代码。 Any suggestions ?有什么建议 ?

PS: I get the error PS:我收到错误

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

You might want to define SDL_MAIN_HANDLED before including SDL.h eg你可能希望定义SDL_MAIN_HANDLED包括前SDL.h

#define SDL_MAIN_HANDLED
#include "SDL.h"

see https://wiki.libsdl.org/SDL_SetMainReadyhttps://wiki.libsdl.org/SDL_SetMainReady

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM