2011-10-08 42 views

回答

4

在Windows PE(可移植可執行文件)格式具有一個標誌,指出可執行是否控制檯標題。取決於它是哪一個,Windows將爲應用程序分配一個控制檯窗口,或者不分配。這也決定了入口點是main還是WinMain

Linux ELF格式沒有類似的標誌。入口點始終爲main。 「控制檯窗口」的概念在Linux中完全不同。 (請注意,上述內容在某種程度上簡化了問題,因爲您所談論的入口點是代碼開始的地方,編譯器/鏈接器總是提供一些運行時庫啓動代碼,該代碼在您的用戶入口點之前運行被稱爲,這是真正的入口點。)

1

它完全取決於您正在使用的GUI庫。該入口點是C 程序(託管模式)始終是主要(通常,這是在其配置的東西C啓動代碼,然後調用主要是地方代碼開始。

某些環境提供自己版本的main調用你的代碼之前設置的東西,但是,QtKDE(作爲兩個實例)仍然使用main,你就需要設置envirnment了自己。

0

是的,它始終是主( )。

Linux本身並不區分GUI和非GUI程序。它在可執行文件中沒有標記,表示「這是一個控制檯應用程序」或「這是一個窗口應用程序」。

嚴格地說,入口點不是main(),而是_start或其他東西。但是,如果您使用標準C庫或其某種變體進行鏈接,則它通常是C語言中的main()。

相關問題