2012-08-15 179 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