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

How to compile Winsock Control 6.0 on VB6 in Windows 10?

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

mswinsck.ocx could not be loaded

值得注意的是,我已经安装了 VB6 SP6,SP6 在 Windows 8.1 和 Windows 7 上运行良好,但无法在 [=45= 上编译] 10.

另外值得注意的是,编译后的 .exe,当从 Win7/8 编译时,加载 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有关),找不到:

有谁知道如何在 VB6 on Win10 的“Winsock Control”中编译?

(另外值得注意的是,MSFlexGrid 组件似乎无法以类似的方式在 Win10 上编译,但这个问题是关于 WinSock 控件的,而不是 MSFlexGrid)。

编辑: 附加信息:我安装了“VB6 Service Pack 6”,VB 版本是“版本 9782 VB零售版 6.0.9782",mswinsck.ocx 文件本身的版本是 6.1.97.82(感谢评论,我知道存在更新的版本:6.1.98.16

我 运行 经常在 Windows 10 台机器上遇到这个问题,并通过注销解决了这个问题,re-registering 每个 OCX 使用提升的命令提示符:

  1. 通过 right-clicking 从“开始”菜单打开命令提示符 window,然后选择“运行 作为管理员”。 请务必您的命令提示符 window 标题为“管理员:命令提示符”。
  2. 通过键入 cd \Windows\SysWOW64
  3. 转到 SysWOW64 文件夹
  4. 通过键入 regsvr32 -u mswinsck.ocx
  5. 注销 OCX
  6. Re-register OCX 输入 regsvr32 mswinsck.ocx

这通常可以解决问题。

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