我在寻找可能使用我自己的私人语言的SDL2。他们可以与动态库(如SDL2.dll)交谈,以便可行。但首先我需要使用C来试用它。我是否需要SDL的main()函数?
但是,hello-world样式的教程很难实现(它们针对的是SDL的错误版本,或者是C++或其他)。最后,我把一个最低限度的程序放在一起(只是#include“sdl.h”和main(){}会显示这个问题),并且我不能链接,因为我没有main()或WinMain()。
我知道SDL.h或其他标题重新定义了我的'main',因为它想要使用它自己的main()例程。这大概存在于SDL的静态链接库中,因为它不能在SDL2.dll中。我没有这个库,看不到任何一点,因为我不能用我自己的语言来使用它(它也将是特定于实现的,甚至作为源代码来使用,在这种情况下忘记它!)。
我设法通过添加'#undef main'来获得一个基本的测试程序。
但是,我的问题是,SDL的main()中是否有必要,或者将来可能会咬我?或者我可以离开它吗? (为什么SDL不仅仅依赖于某些SDL_init()函数来调用我的main()?)
(我向SDL论坛注册以询问这个问题,但显然他们不允许我因为我没有正确的权限,所以注册点是什么?!)
请参阅:http://stackoverflow.com/questions/11976084/why-sdl-defines-main-macro – Fang
谢谢。这最终导致建议查看源文件中的'SDL_main.c',这告诉我,除了与命令行解析有关的东西外,它会调用SDL_SetMainReady()。这就是如果它是正确的版本,但SDL2.dll中有这样的功能,所以如果遇到问题,我可以尝试调用它。 – bartc