2012-08-15 177 views
0

我最近不得不重建一個C#interop創建VB6調用。我已經用regasm(使用codebase開關)註冊它,並添加了tlb作爲VB6項目的引用,但是當我嘗試調用它時,出現以下自動化錯誤:-2146232832(0x80131600)自動化錯誤與互操作

如果我註冊了現有interop dll以完全相同的方式添加到我的項目中,它工作正常。我可以想到的唯一區別是該項目已經從VS8升級到VS9(儘管與.net版本相同),現在我正在64位計算機上編譯(我知道這是一個問題)。我已經將該項目設置爲x86編譯,但仍然出現自動化錯誤。

任何想法??

+0

你的意思是VS2008和VS2010我認爲? – EaterOfCode 2012-08-15 16:33:46

回答

1

你的C#代碼拋出一個異常,它不被捕獲。特別是一個ApplicationException。這是框架代碼從不拋出的一個例外,它必須位於C#源代碼中。

如果找不到問題,則需要調試代碼。使用Project + Properties,Debug選項卡執行此操作。選擇「啓動外部程序」並將其指向c:\ program files \ microsoft visual studio \ vb98 \ vb6.exe。然後Debug + Exceptions,勾選Thrown複選框以查看CLR異常。

您現在可以按F5鍵並開始運行VB6 IDE。加載你的VB6項目並重現問題。調試器停止在拋出異常的C#代碼行處。

+0

非常感謝。知道如何從VB6調試到.NET非常有用! – RRM1000 2012-08-16 10:07:12