2011-12-22 85 views
0

我注意到,在VC++控制檯項目的默認鏈接器設置中,「入口點」保留爲空。上生成的可執行文件使用DUMPBIN我看到爲什麼不需要/ ENTRY鏈接器選項?

entry point (004110FF) @ILT+250(_mainCRTStartup) 

我還檢查項目屬性的命令行選項並沒有給出任何「/ ENTRY」鏈接器選項。

那麼鏈接器如何確定生成的可執行文件的入口點?我能想到的2種選擇:

1)有一些「的#pragma評論(連接 「/ enty:_mainCRTStartup」)在CRT 源代碼安葬,但我沒有找到它

。 2)連接器本身從派生此信息「/子系統:CONSOLE」選項 因此,在Visual Studio中的選項將只是覆蓋由LINK.EXE

所做的選擇,你有什麼想法

+0

對不起,我自己找到答案。只是分享我發現的: 我的第二個猜測是正確的。鏈接器本身從給出的其他設置(例如/ subsystem:console)中獲取此信息。請參閱MSDN [鏈接](http://msdn.microsoft.com/en-us/library/f9t8842e(v = VS.100).aspx) 因此,項目屬性中的選項僅在需要提供_mainCRTStartup以外的入口點。 – user1111407 2011-12-22 09:59:03

+0

您應該添加您的評論作爲您自己問題的答案,然後在系統允許時接受它。 – 2011-12-27 09:23:41

回答

0

第二個猜測是正確的。鏈接器本身派生了這個來自其他設置的信息(例如, /子系統:控制檯)。請參閱MSDN link。因此只有在您想要提供除_mainCRTStartup以外的入口點時才需要項目屬性中的選項。