Vista 64位上winforms窗口中的MFC Active-X控件&引用;“未注册的类异常”;

Vista 64位上winforms窗口中的MFC Active-X控件&引用;“未注册的类异常”;,mfc,windows-vista,activex,winforms-interop,Mfc,Windows Vista,Activex,Winforms Interop,为了尝试确认winforms窗口上托管的ActiveX控件中的键处理的另一个建议,我尝试制作一个基本MFC ActiveX控件,然后将其放置在windows窗体上。在设计时间内,控制显示无故障 运行应用程序时,会出现可怕的“类未注册异常”对话框 这两个项目都在VS 2008中。Winforms应用程序是一个.NET3.5框架应用程序 我试着从资源管理器(在这两种情况下都提升了权限)运行调试器,但似乎没有任何效果。我甚至确保我用64位和32位regsvr32可执行文件手动注册了OCX 这让我感到困

为了尝试确认winforms窗口上托管的ActiveX控件中的键处理的另一个建议,我尝试制作一个基本MFC ActiveX控件,然后将其放置在windows窗体上。在设计时间内,控制显示无故障

运行应用程序时,会出现可怕的“类未注册异常”对话框

这两个项目都在VS 2008中。Winforms应用程序是一个.NET3.5框架应用程序

我试着从资源管理器(在这两种情况下都提升了权限)运行调试器,但似乎没有任何效果。我甚至确保我用64位和32位regsvr32可执行文件手动注册了OCX

这让我感到困惑,因为我不希望它不运行。我在工作中做过类似的实验(32位WindowsXPbox),没有遇到任何问题

我的VS配置如下:

  • Microsoft Visual Studio 2008

  • 版本9.0.30729.1 SP

  • Microsoft.NET框架

  • 版本3.5 SP1

    最令人困惑的是ActiveX控件似乎在设计时出现。如有任何回答、建议或想法,将不胜感激


我需要将.Net主机的输出更改为x86,而不是“任何平台”。这是必要的,因为应用程序正被JIT到x64,而ActiveX控件不是为其编译的。哦!更改为ActiveX主机项目后,应用程序运行正常。

我需要将.Net主机的输出更改为x86,而不是“任何平台”。这是必需的,因为应用程序正被JIT到x64,而ActiveX控件不是为其编译的。哦!更改ActiveX主机项目后,应用程序运行正常。

启动oleview32。查找activeX控件。在此处复制并粘贴注册表项。我怀疑注册已损坏。请启动oleview32。查找activeX控件。在此处复制并粘贴注册表项。我怀疑注册被破坏了。