2010-03-23 60 views
2

後,我有一個使用第三方.NET的DLL非託管C++項目。它在一臺機器上構建得很好,但不能在另一臺機器上構建 - IDE無法找到類定義。VS 2005找不到.NET的DLL類的定義甚至Regasm

我跑RegAsm.exe TheLib.dll /codebase /tlb:TheLib.tlb,並且在兩臺機器的註冊表條目相匹配。也就是說,即使IDE說TheLib.Function()是不確定的,它的存在兩臺機器的註冊表。

我會做什麼錯? (兩臺機器上的源已簽出同一個資源庫,並沒有未提交或版本文件。)

回答

1

這有時會發生,如果你沒有正確地導出從庫中的類或函數。即使代碼在那裏,並且它在鏈接時編譯得很好,它可能會省略定義或者實際上不會生成對函數的導出。那麼導入這個lib的其他項目會顯示它們是未定義的。

This article介紹從DLL導出類的好辦法,是值得一讀,因爲它可能與你的問題。

+0

感謝您的回答。我已經退役了那臺機器(因爲不相關的原因),所以我不知道這是否能解決問題。無論如何給+1 +1) – egrunin 2011-01-03 17:24:27