如何解决c#应用程序中的vb6 dll 800a01ad错误

hul*_*ist 2 c# vb6 dll

我有一个我从一个VB6项目创建的DLL,我现在在ac #project中使用它.这已经有效了,但现在当我尝试返回到c#项目修复bug时,程序得到一个COMException,说明大致翻译:

由于以下错误,无法从IClassFactory创建具有CLSID {085E3494-9F78-47D5-B0E6-FA460FD3CBED}的COM组件实例:800a01ad.

所以我尝试在main函数中创建一个只有一行的新的空c#项目:

OurNamespace.OurClass foo = new OurNamespace.OurClass();
Run Code Online (Sandbox Code Playgroud)

哪个失败了同样的错误.

我已经注册了dll,但这并没有改变问题的结果.

问题只发生在我目前所在的机器上,我仍然有兴趣了解这个问题,以便我知道如果它在客户的计算机上发生,如何修复它.

Han*_*ant 5

这转换为VB6运行时错误429,"ActiveX无法创建对象".不是你的C#代码失败,它是VB6代码有问题.你只能通过调试VB6代码到达某个地方.您将需要VB6 IDE,加载库项目,将C#程序设置为启动程序,并在您尝试在C#代码中创建的类的Class_Initialize子例程中设置断点.

假设你不再使用这些工具,错误429有很多潜在的原因.最常见的是注册问题,通过在VB6代码使用的DLL上运行Regsvr32.exe来解决.