0

我最近不得不重建为从 VB6 调用而创建的 C# 互操作。我已使用 regasm 注册它(使用代码库开关)并将 tlb 添加为对 VB6 项目的引用,但是当我尝试调用它时,我收到以下自动化错误:-2146232832 (0x80131600)

如果我以完全相同的方式注册现有的互操作 dll 并添加到我的项目中,它就可以正常工作。我能想到的唯一区别是该项目已经从 VS8 升级到 VS9(虽然是相同的 .net 版本),而我现在正在一台 64 位机器上编译(我知道这方面存在问题)。我已将项目设置为编译为 x86,但仍然出现自动化错误。

有任何想法吗??

4

1 回答 1

2

您的 C# 代码正在引发异常并且没有被捕获。特别是 ApplicationException。这是框架代码从不抛出的异常,它必须位于您的 C# 源代码中。

如果找不到问题,则需要调试代码。使用 Project + Properties,Debug 选项卡执行此操作。选择“启动外部程序”并将其指向 c:\program files\microsoft visual studio\vb98\vb6.exe。然后 Debug + Exceptions,勾选 CLR exceptions 的 Throw 复选框。

您现在可以按 F5 并开始运行 VB6 IDE。加载您的 VB6 项目并重现问题。调试器在引发异常的 C# 代码行处停止。

于 2012-08-15T19:08:25.617 回答