2015-10-20 98 views
0

我需要控制可執行文件中的函數順序。 我知道它可以通過Visual Studio中的連接選項「功能令」來完成,但它失敗與錯誤: LNK4037:[函數名稱]不存在二進制中的函數順序

我相信,因爲在陌生的名字CPP compailer給出的功能,但我找不到合適的名稱使用。

還有一個選項,pragma alloc_text,但它只在c中有效。不是cpp。

TNX的幫助:)

+0

讓編譯器輸出一個鏈接器映射。在那裏你會找到你的函數的名字。不用說,在可執行文件中依賴某個函數的順序通常不是一個好主意。你認爲你需要這個的原因是什麼? – nv3

回答

0

地圖文件包含只有裝飾的名字,如果你想控制功能相同名稱的各種重載之間爲了能夠得到非常不舒服。

還有兩種其他documented查看裝飾名稱的方法,我的個人建議是使用Listing Files:項目屬性頁面 - > C/C++ - >輸出文件 - >彙編器輸出。

另一種方法是檢查dumpbin輸出 - 但我個人儘量避免使用命令行工具。

+0

你說得對。我使用dumpbin查看錯位的名稱,並解決了問題。 TNX – yuvalhuck