如何在Windows 10中的VB6上编译Winsock Control 6.0?

问题描述

当尝试在Windows 10上的“ Winsock Control”组件中进行编译时,出现此错误

mswinsck.ocx无法加载

image

值得注意的是,我已经安装了VB6 SP6,并且在SP6中,它可以在Windows 8.1和Windows 7上很好地工作,但是在Windows 10上无法编译。

值得注意的是,从Win7 / 8编译后的.exe编译时,加载ws2_32.dll没问题。这只是在Win10上不起作用的编译步骤。

正在运行Dependency Walker,depends.exe建议mswinsck.ocx无法加载,因为它取决于API-MS-WIN-CORE-SYNCH-L1-2-0.DLLAPI-MS-WIN-CORE-PROFILE-L1-1-0.DLLAPI-MS-WIN-CORE-PROCEsstHREADS-L1-1-0.DLL以及许多其他DLL名称相似(我认为这些DLL与SysWOW64有关),找不到:

image

有人知道如何在Win10的VB6中的“ Winsock控制”中进行编译吗?

(同样值得注意的是,MSFlexGrid组件似乎无法以类似的方式在Win10上进行编译,但这是有关WinSock控件而不是MSFlexGrid的问题。)

编辑:其他信息:我已经安装了“ VB6 Service Pack 6”,VB版本是“版本9782 VBA Retail 6.0.9782”,以及mswinsck.ocx文件本身上的版本是6.1.97.82(并且要感谢评论,我知道有一个更新的版本:6.1.98.16

解决方法

我经常在Windows 10计算机上遇到此问题,并通过使用提升的命令提示符取消注册和重新注册每个OCX来解决该问题:

  1. 从开始菜单中右键单击并选择“以管理员身份运行”,以打开命令提示符窗口。 重要,您的命令提示符窗口标题为“管理员:命令提示符”。
  2. 通过键入cd \Windows\SysWOW64进入SysWOW64文件夹
  3. 通过键入regsvr32 -u mswinsck.ocx取消注册OCX
  4. 通过键入regsvr32 mswinsck.ocx
  5. 重新注册OCX

通常可以解决问题。

如果使用Visual Studio Installer 1.1部署应用程序,则在部署到Windows 10系统上可能会遇到相同的问题。安装程序似乎没有正确注册文件。如果您使用Visual Studio 2019和安装扩展,将以我的经验构建一个可以正确注册OCX的安装程序。