我在尋找可能使用我自己的私人語言的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