在.net中使用VB6.0窗体嵌入DLL
我有一个VB6项目的DLL,它有一个类和一个窗体。在调用窗体的构造函数时,将从该类调用窗体。我从项目中创建了一个DLL,将该DLL添加到我的.NET项目引用中。现在,当我调用该类DLL时,会出现以下错误:在.net中使用VB6.0窗体嵌入DLL,.net,vb.net,forms,vb6,.net,Vb.net,Forms,Vb6,我有一个VB6项目的DLL,它有一个类和一个窗体。在调用窗体的构造函数时,将从该类调用窗体。我从项目中创建了一个DLL,将该DLL添加到我的.NET项目引用中。现在,当我调用该类DLL时,会出现以下错误: Creating an instance of the COM component with CLSID {4E44E1A1-391D-4846-B733-2618249FE35A} from the IClassFactory failed due to the following erro
Creating an instance of the COM component with CLSID {4E44E1A1-391D-4846-B733-2618249FE35A} from the IClassFactory failed due to the following error: 800a0196.
这意味着表单未打开。VB6 ActiveX DLL中的表单必须从.NET以模式打开。您是表单模式吗?我假设这是一个VB6 COM DLL,而不是扩展名为.DLL的ActiveX控件?这是在您的Visual Studio dotNet环境中发生的,还是仅在您部署应用程序时发生的?有时,regsvr32帮助它们不必是模态的。如果需要的话,COM DLL可以在窗体的整个生命周期内打开窗体。我的答案改进为只处理VB6 ActiveX交互。我刚刚再次测试了这一点,在.NET中,错误非模态表单无法从ActiveX DLL、ActiveX控件或属性页显示在此主机应用程序中。被抛出。