繁体   English   中英

我需要SDL的main()函数吗?

[英]Do I need SDL's main() function?

我正在寻找可能使用我自己的私人语言的SDL2。 他们可以与动态库(例如SDL2.dll)进行通讯,因此这是可行的。 但是首先我需要使用C进行尝试。

但是,这种讲究式的教程是难以捉摸的(它们用于错误版本的SDL,或者它们用于C ++或其他版本)。 最后,我最终整理了一个最小程序(只是#include“ sdl.h”和main(){}会显示问题),并且由于我没有main()或WinMain()而无法链接。

我知道SDL.h或其他一些头文件重新定义了我的“ main”,因为它想使用自己的main()例程。 这大概存在于SDL的某个静态链接库中,因为它不能位于SDL2.dll中。 我没有该库,因此看不到任何意义,因为我将无法以自己的语言使用它(它也将是特定于实现的,甚至会作为源代码出现,在这种情况下,请忘记它!)。

通过添加“ #undef main”,我设法获得了一个基本的测试程序。

我的问题是,但是,我需要SDL的main()中是否有任何必要的内容,或者将来有可能咬住我? 还是没有它我能逃脱吗? (为什么SDL不仅仅依赖某些SDL_init()例程让我从main()调用?)

(我在SDL论坛上注册时曾询问过此问题,但是显然,由于我没有适当的特权,他们不允许我发帖。那么注册的目的是什么?!)

而不是#undef main#define SDL_MAIN_HANDLED包括之前SDL.h (或通过编译器标志定义它)。

如果实现自定义的main函数,则至少应调用SDL_SetMainReady 对于某些平台,SDL执行其他操作,例如设置特定的异常处理程序,将参数转换为UTF8或完全不同的内容(例如,对于android来说,它并不是主要功能,而是JNI函数)。

SDL2main库中定义的SDL入口点,并没有真正理解您为“没有它”所做的工作(除了手动删除它)。 您始终可以从libsdl.org下载存档,也可以自己构建。

暂无
暂无

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

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