VB6到vb.net类未注册异常

VB6到vb.net类未注册异常,vb.net,exception,exception-handling,vb6,Vb.net,Exception,Exception Handling,Vb6,作为我使用vb.net的第一项任务,我被指派使用Visual Studio 2008将VB6项目迁移到vb.net。我现在正在使用Visual Studio 2017,并且已经完成并清除了转换过程中给我的所有升级警告。我唯一剩下的问题是两个“类未注册”异常实例 注意事项: 最初的vb6程序是在Windows XP机器上运行的。我目前正在使用Windows 7 64位系统 我读过其他几篇文章,但我还没能解决我的问题 此警告更具体地与窗体的设计视图相关 我相信问题可能与缺少dll有关,因为我必须

作为我使用vb.net的第一项任务,我被指派使用Visual Studio 2008将VB6项目迁移到vb.net。我现在正在使用Visual Studio 2017,并且已经完成并清除了转换过程中给我的所有升级警告。我唯一剩下的问题是两个“类未注册”异常实例

注意事项:

  • 最初的vb6程序是在Windows XP机器上运行的。我目前正在使用Windows 7 64位系统
  • 我读过其他几篇文章,但我还没能解决我的问题
  • 此警告更具体地与窗体的设计视图相关
我相信问题可能与缺少dll有关,因为我必须将源代码移到另一台计算机上进行调试

如果有人能帮我指出正确的方向,下面是调用堆栈:

Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) 
Instances of this error (2)  

1.   Hide Call Stack 

at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
at System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
at System.Windows.Forms.AxHost.CreateInstance()
at System.Windows.Forms.AxHost.GetOcxCreate()
at System.Windows.Forms.AxHost.set_Site(ISite value)
at System.ComponentModel.Container.Add(IComponent component, String name)
at System.ComponentModel.Design.DesignerHost.PerformAdd(IComponent component, String name)
at System.ComponentModel.Design.DesignerHost.System.ComponentModel.Design.IDesignerHost.CreateComponent(Type componentType, String name)
at System.ComponentModel.Design.Serialization.DesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)
at System.ComponentModel.Design.Serialization.DesignerSerializationManager.System.ComponentModel.Design.Serialization.IDesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeInstance(IDesignerSerializationManager manager, Type type, Object[] parameters, String name, Boolean addToContainer)
at System.ComponentModel.Design.Serialization.ComponentCodeDomSerializer.DeserializeInstance(IDesignerSerializationManager manager, Type type, Object[] parameters, String name, Boolean addToContainer)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression)
at System.ComponentModel.Design.Serialization.CodeDomSerializer.DeserializeStatementToInstance(IDesignerSerializationManager manager, CodeStatement statement)
at System.ComponentModel.Design.Serialization.CodeDomSerializer.Deserialize(IDesignerSerializationManager manager, Object codeObject)
at System.Windows.Forms.Design.ControlCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, Object codeObject)
at System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.DeserializeName(IDesignerSerializationManager manager, String name, CodeStatementCollection statements) 

谢谢你的帮助

ActiveX控件是否已注册?您仍然必须确保COM组件的正确注册。然后你可以使用它们——从32位可执行文件中(将你的应用程序设置更改为x86)@nabuchdonossor我将编译平台更改为x86。我有一个在我的项目中使用的引用DLL的列表。我刚从旧的winxp计算机上复制了一些DLL,我从中获取了源代码。如何检查这些文件是否已注册?如果您只是复制了这些文件,则它们未注册。使用windows中的RegSvr32工具注册activex控件。根据控件(您没有提到)的不同,可能需要使用控件的安装程序(可能不止一个dll)。@NabuchDonossor我最好的猜测是,导致此问题的dll是bruel&kjaer提供的Interop.PulseLabShop。我从winxp机器上复制了它,除了添加它作为我项目的参考之外,没有做任何其他事情。当我尝试注册它时,我收到了一条消息:模块已加载,但在谷歌搜索后未找到入口点DLLRegisterServer。似乎DLL中不存在DLLRegisterServer函数(此时我无法验证,我需要管理员访问权限才能下载要检查的程序)或者这个DLL不需要注册最好的方法是使用pulselabshop的旧安装程序。它应该处理这个问题。这个pulselabshop有ocx文件吗?还是tlb文件?对不起,我不知道你正在使用的产品,所以我只能猜测。你的ActiveX控件注册了吗?您仍然必须确保COM组件的正确注册。然后你可以使用它们——从32位可执行文件中(将你的应用程序设置更改为x86)@nabuchdonossor我将编译平台更改为x86。我有一个在我的项目中使用的引用DLL的列表。我刚从旧的winxp计算机上复制了一些DLL,我从中获取了源代码。如何检查这些文件是否已注册?如果您只是复制了这些文件,则它们未注册。使用windows中的RegSvr32工具注册activex控件。根据控件(您没有提到)的不同,可能需要使用控件的安装程序(可能不止一个dll)。@NabuchDonossor我最好的猜测是,导致此问题的dll是bruel&kjaer提供的Interop.PulseLabShop。我从winxp机器上复制了它,除了添加它作为我项目的参考之外,没有做任何其他事情。当我尝试注册它时,我收到了一条消息:模块已加载,但在谷歌搜索后未找到入口点DLLRegisterServer。似乎DLL中不存在DLLRegisterServer函数(此时我无法验证,我需要管理员访问权限才能下载要检查的程序)或者这个DLL不需要注册最好的方法是使用pulselabshop的旧安装程序。它应该处理这个问题。这个pulselabshop有ocx文件吗?还是tlb文件?对不起,我不知道你在用什么产品,所以我只能猜测。