2011-03-20 75 views
0

我正在對使用.def文件處理函數導出的C++ 6.0項目進行維護。我不得不將一對實例方法添加到類定義中,但我不知道如何將這些方法添加到.def文件中,以便將它們導出。 .def文件的EXPORTS部分下面的每行看起來像[email protected]@@AStringOfLetters,可能是@Z,因爲我無法理解。我假設字母串以某種方式對應於方法的原型,但是我找不到任何描述編碼的文檔。我添加的方法沒有與任何現有方法完全匹配的原型。如何正確修改Visual C++ 6程序中的.def文件?

比方說,我的新方法的原型是這樣的:

short ClassName::Foo1(const short, const unsigned int, const short, const unsigned int *); 
    short ClassName::Foo2(const short, const unsigned int, short *, unsigned int *); 

我需要什麼添加到.def文件,以使我快樂鏈接,實際出口的方法呢?

回答

2

您正在導出C++損壞的符號。我會在它們前面臨時添加一個__declspec(dllexport),然後將這個DLL加載到Dependency Walker之類的東西中,或者使用dumpbin來查看導出的內容。這會給你新的功能帶來破壞性的符號,然後你可以將它添加到.def文件並刪除__declspec

+0

謝謝,這個伎倆。 – Andrew 2011-03-20 23:43:30

0

要獲得新函數的重名,只需註釋實現並構建項目即可。這樣,你會得到一個liker錯誤,顯示你的新函數的重名。用這個新的改名名稱更新你的def文件。

相關問題