2010-05-24 231 views
2

我有一個COM互操作C++ DLL,它是通過在c#中生成的.tlb文件在C++中加載的。 當我在我的電腦上運行,它工作正常,但是當我在那個剛剛格式化它的計算機上運行得:.tlb文件必須註冊?

WindowsError: exception code 0xe0434f4d 

我必須爲.tlb文件或其DLL做一些事情在登記系統?關於regasm.exe的一些事情?

如果是這樣,只能下載regasm.exe並使用它?

回答

3

對不起,你正確診斷這一百萬英里。類型庫適用於編譯器,它們在運行時通常不需要。

您收到的異常代碼顯示發生了什麼問題。它是託管異常的例外代碼。換句話說,你的C#代碼拋出了一個異常,並沒有被處理。對於C#代碼來說,這很常見,當它發現一個問題時,它不知道如何處理,然後拋出而不是生成垃圾數據。

有兩個基本的方法來解決這個問題。 D方法是使用調試器切換到託管模式,並使其停止在未處理的託管異常處。例如,Debug + Exception,Thrown複選框。或者,您可以爲方法本身添加一些診斷,例如將錯誤記錄在catch塊中。

開始於Q & D,它幾乎總是很傻,像FileNotFound。

+0

我的問題是,我使用的是一個調用C++包裝DLL的python程序,那個調用了c#com interop dll!我正在沒有Visual Studio的電腦上測試它。 (我安裝了C++和.net 3.5緊湊框架的重新分發部分)。它在我製作代碼的計算機上工作。您能否指點我Q&D方面的問題 – 2010-05-25 11:31:43

+2

問與答的意思是「快速和骯髒」。 – 2010-05-25 11:59:19

相關問題