我有一个我从一个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,但这并没有改变问题的结果.
问题只发生在我目前所在的机器上,我仍然有兴趣了解这个问题,以便我知道如果它在客户的计算机上发生,如何修复它.
这转换为VB6运行时错误429,"ActiveX无法创建对象".不是你的C#代码失败,它是VB6代码有问题.你只能通过调试VB6代码到达某个地方.您将需要VB6 IDE,加载库项目,将C#程序设置为启动程序,并在您尝试在C#代码中创建的类的Class_Initialize子例程中设置断点.
假设你不再使用这些工具,错误429有很多潜在的原因.最常见的是注册问题,通过在VB6代码使用的DLL上运行Regsvr32.exe来解决.
| 归档时间: |
|
| 查看次数: |
3315 次 |
| 最近记录: |