VS2022引用32位OCX问题

在WIN11的环境下,用VS2022,如何引用一个32位的OCX制品?求各位帮忙,非常感谢
已使用过的验证方式如下
・OCX制品放到SysWOW64文件夹下可以注册上,但是VS工具箱添加引用时候报错
・OCX制品放到System32文件夹下无法注册成功
・都是使用管理员方式运行的,使用SysWOW64文件夹下和System32文件夹下的CMD都试验过,
CD命 令到文件夹目录下,再注册的方式也试验过。

TechWhizKid参考GPT回答:

  • 下面提供一些可能的解决方案:
  1. 用32位注册工具:Windows 64位系统提供了两种注册工具,分别是32位和64位。对于32位OCX文件,要用32位注册工具进行注册。这个工具在 C:\Windows\SysWOW64\regsvr32.exe

  2. 对于Visual Studio,尽管操作系统是64位的,但还是要确保你的项目配置在32位(x86)环境下运行,以便可以加载和使用32位OCX组件。在项目属性中,找到“生成”选项卡,然后将“目标平台”设置为x86。如果没有x86选项,可以新建一个。

  3. 如果这些还是不能解决问题,可能要检查OCX文件是否有依赖项缺失,使用如 Dependency Walker 这样的工具可以帮助检查。如果有依赖项缺失,要找到并安装它们。

  4. 最后,如果所有方法都无效,可能是OCX组件与Windows 11或VS 2022不兼容。这种情况下,你可能要找到一个新版本的OCX组件,或者联系组件的供应商以获取帮助。

应该是64位vs2022不支持32位ocx组件的原因导致无法创建,寻找64位ocx组件使用。如果是第三方 没有64位,建议使用vs2019开发编译32位程序。

借鉴ChatGPT回答:

在Win11上使用VS2022引用32位OCX组件,需要进行以下设置:

  1. 将32位OCX文件放入SysWOW64文件夹下。这是Win11上运行32位程序使用的系统文件夹。
  2. 以管理员身份运行Visual Studio命令提示符。在开始菜单中找到“Visual Studio 2022”文件夹,选择“Developer Command Prompt for VS 2022”。
  3. 在命令提示符中,切换到SysWOW64目录。输入:
cd C:\Windows\SysWOW64

  1. 在SysWOW64目录下,注册OCX组件。输入:
    regsvr32 OCX文件名
    例如:
regsvr32 mycontrol.ocx

  1. 重启Visual Studio。
  2. 在VS中,选择“工具”->“选择工具箱项”。
  3. 在“ COM Components”选项卡下,应该可以找到注册的OCX组件,选中添加引用。
  4. 如果仍提示“找不到指定的模块”,可能是时间戳问题。我们需要修改注册表,继续在命令提示符下输入:
regsvr32 /u OCX文件名       // 注销组件
regsvr32 /i:user OCX文件名   // 重新注册,并更改时间戳

  1. 重启VS,重复步骤6和7,OCX组件应该可以成功添加引用。
    这是因为VS2022基于x64平台,默认无法识别x86的OCX组件。所以我们需要通过SysWOW64和命令提示符以x86模式注册OCX组件,并修改时间戳避免版本错误,才可以在VS2022中成功使用。

在Windows 11下,如果您想在VS2022中使用一个32位的OCX制品,您需要进行以下步骤:

将OCX制品放置在SysWOW64文件夹下,并使用管理员权限运行命令提示符窗口。

使用CD命令切换到SysWOW64文件夹,然后运行以下命令注册OCX制品:

regsvr32.exe myocx.ocx
请将“myocx.ocx”替换为您实际的OCX文件名。如果注册成功,您应该会看到一个弹出窗口,显示“DllRegisterServer在myocx.ocx中成功注册”。

在VS2022中,打开您的项目,并在“工具箱”窗口右键单击,选择“选择工具箱项”菜单。

在“选择工具箱项”对话框中,单击“浏览”按钮,并导航到SysWOW64文件夹中的OCX制品。

选择OCX制品并单击“确定”按钮,将其添加到工具箱中。

现在,您应该能够在VS2022中使用该OCX制品了。如果您在添加工具箱项时遇到错误,请确保您已按照上述步骤正确注册了OCX制品,并且以管理员身份运行了VS2022。

报错截图呢

可以借鉴下
https://www.keil345.com/keil/269424.html

用64位的OCX制品试试,可能是位数不匹配的原因