2011-07-01 88 views
0

我有一個ActiveX DLL,我正在與標準的第三方客戶端集成。爲了達到這個目的,我必須包含一個自定義的DEF文件,一個代理鏈接器,並自行初始化COM庫。查找名稱裝飾

當我用我創建的客戶端測試我的ActiveX DLL時,它運行良好。但是,當我將ActiveX DLL包含到第三方客戶端時,它會在某些函數調用中崩潰。我相信撞擊是命名裝飾不匹配的結果。

有沒有一種方法可以驗證第三方客戶端程序需要的名稱修飾?

感謝,

+0

如果我明白你的意思沒有「名稱修飾」在C.標籤被刪除。 – pmg

+0

由於該問題似乎過於模糊,無法給出任何有意義的答案或建議。 –

+0

你試過'dumpbin.exe/imports client.exe'嗎? – wqw

回答

1

的Dependency Walker可以告訴你什麼是dll的導出:

http://dependencywalker.com/

但是,如果有一個名稱不匹配,你會得到一個錯誤或異常。這很可能是你傳遞了一個錯誤的參數。

[編輯] 的Dependency Walker顯示你正在打電話,嘗試將其匹配到DLL的外部函數:

enter image description here

+0

我使用了Dependency Walker,但我只能找到dll的簽名。不顯示客戶端程序所需的簽名。這可以顯示嗎? – Peretz

+0

我編輯了我的原始答案(所以我可以粘貼圖像)。 –

+0

感謝您的圖像。出於某種原因,函數匹配顯示在相應exe下的所有DLL中。但是,有一些DLL出現在與其他主要exe相同的級別上,並且頂部窗口顯示爲空。這個DLL也被exe調用,偶然,你知道它爲什麼不出現在下面嗎? – Peretz