2010-05-28 62 views
0

我有一個C++ DLL,用於導入在C#項目中生成的.tlb文件。 C++ DLL是一個包含DLL的函數,它包含調用相應C#函數的函數。在Windows 7 Pro中生成.tlb文件32位

當我在構建項目的計算機上調用C++函數時,一切正常。但是當我複製DLL和生成的tlb到具有相同版本的Windows和已安裝程序的另一臺計算機時,我調用C++函數時,它會因COM錯誤而中斷。但是,在重新編譯新計算機上的項目之後,一切都會重新運行。

我已經爲兩個項目檢查了「在所有計算機上工作」,但這種情況一直在發生。我還需要做什麼才能讓DLL在所有計算機上工作?

回答

2

您獲得的HRESULT對於診斷這一點至關重要。被迫猜測:你是否在該機器上運行Regasm.exe?爲了使COM能夠找到服務器所需的註冊表項。在IDE中構建時它是自動的。

+0

我會盡量多做一次。我明天通知你。感謝您的快速響應! – 2010-05-28 11:03:11

+0

關於HRESULT我不知道如何看到,因爲我首先使用一個python項目來調用C++函數。我怎樣才能看到HRESULT? – 2010-05-28 11:04:29

+0

如果您沒有得到體面的診斷,則必須使用C++調試器。如果我的猜測是正確的,那麼它明天不會失敗。 – 2010-05-28 11:07:35

相關問題