2013-12-16 74 views
3

與/輸出或/進口我看語法在輸出像下面在C++ .DLL(或IMPLIB .LIB文件)使用DUMPBIN什麼是@number在DUMPBIN出口輸出

Exports 

ordinal name 

     [email protected] 
     _ConduitPort 
     [email protected] 
     [email protected] 
     [email protected] 
     [email protected] 

我無法找到任何關於@n指定的含義的定義。我終於得出結論,它是參數數據的字節數,但是根據幾個例子的推理,它讓我有些緊張。任何人都可以指出一個參考,或與任何權威人士說,這裏的數字是什麼意思?

+5

這是[C++ name mangling](https://en.wikipedia.org/wiki/Name_mangling)。 –

+0

這些名字用'extern「C」'裝飾,所以它本身不是直的。 –

+0

這些班級成員是?如果是,則「extern」C「'被忽略。 –

回答

4

您可以得出結論:@n表示函數參數的字節數。您可以找到相關的MSDN文檔herehere

特別是,MSVC如何在C++中修飾extern "C" __stdcall函數。請注意,這在技術上是由實現定義的,而其他編譯器的確有不同的裝飾。

例如,MinGW-gcc裝飾它沒有的領先下劃線。 Embarcadero的編譯器(以前稱爲Borland)根本不裝飾__stdcall函數,而Digital Mar的編譯器使用與MSVC相同的裝飾方案。

+0

第二個參考正是我所要求的 - 謝謝。 –