第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么SDL定義主宏?

為什么SDL定義主宏?

C++
收到一只叮咚 2019-08-28 09:36:58
為什么SDL定義主宏?在設置SDL時遇到一些問題后,我發(fā)現(xiàn)SDL定義了一個替換main的宏:#define main SDL_main// And then extern C_LINKAGE int SDL_main(int argc, char *argv[]);如果main函數(shù)沒有定義argc和argv參數(shù),這也會產(chǎn)生編譯錯誤。當我看到它時,這個宏讓我感到頭疼......為什么SDL需要重新定義主?經(jīng)過一番搜索,我找到了一些人#undef main,并以正常的方式使用它。所以這就是問題: 為什么SDL需要重新定義main,它做什么?取消定義是否有任何副作用?我注意到的一件事是SDL將標準輸出和錯誤重定向到文件(我不想要這種行為),如果我取消定義主要行為,這種行為就會停止。
查看完整描述

2 回答

?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

根據(jù)SDL Windows常見問題解答

您應該使用main()而不是WinMain()即使您正在創(chuàng)建Windows應用程序,因為SDL提供的版本WinMain()在調(diào)用主代碼之前執(zhí)行某些SDL初始化。

如果由于某種原因需要使用WinMain(),請查看SDL源代碼,src/main/win32/SDL_main.c看看您需要在WinMain()函數(shù)中進行哪種初始化,以便SDL正常工作。

SDL需要初始化,因此它會main在調(diào)用“main”函數(shù)之前注入自己的函數(shù)來運行其初始化,它將重命名為“main”函數(shù),SDL_main以便它不會與實際main函數(shù)沖突。如FAQ中所述,您的main功能必須符合表格

int main(int argc, char* argv[])


查看完整回答
反對 回復 2019-08-28
?
天涯盡頭無女友

TA貢獻1831條經(jīng)驗 獲得超9個贊

雖然我同意這是一種奇怪的做法,但有些情況下這是一個合理的解決方案,盡管它在很大程度上取決于平臺??紤]到不同的平臺有不同的入口點。Windows通常是WinMain,Linux是主要的,與Java交互發(fā)生在Java中,WinRT使用C ++ / CX擴展,等等。程序入口點和API可以是特定于平臺的,SDL會嘗試為您節(jié)省處理此問題的麻煩。如果您只針對Windows而SDL只是為了省去使用WIN32 API的麻煩,您可能不需要它。但是,如果你超越桌面,你會發(fā)現(xiàn)它在我看來很有用。


查看完整回答
反對 回復 2019-08-28
  • 2 回答
  • 0 關注
  • 717 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號