首页 > 解决方案 > 如何在 Windows 10 的 VB6 上编译 Winsock Control 6.0?

问题描述

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

mswinsck.ocx 无法加载

图片

值得注意的是,我已经安装了 VB6 SP6,使用 SP6,它在 Windows 8.1 和 Windows 7 上运行良好,但在 Windows 10 上无法编译。

另外值得注意的是,.exe从 Win7/8 编译的已编译的ws2_32.dll. 只是编译步骤在Win10上不起作用。

运行 Dependency Walker,depends.exe建议mswinsck.ocx无法加载,因为它依赖于API-MS-WIN-CORE-SYNCH-L1-2-0.DLLandAPI-MS-WIN-CORE-PROFILE-L1-1-0.DLLAPI-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL一堆具有相似名称的其他 DLL(我认为这些 DLL 与 SysWOW64 有关),无法找到:

图片

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

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

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

标签: windows-10vb6winsock

解决方案


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

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

这通常可以解决问题。

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


推荐阅读