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

han*_*rik 2 vb6 winsock windows-10

尝试在 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.exesuggestmswinsck.ocx无法加载,因为它依赖于API-MS-WIN-CORE-SYNCH-L1-2-0.DLLAPI-MS-WIN-CORE-PROFILE-L1-1-0.DLL以及API-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)

Éti*_*lle 5

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

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

这通常可以解决问题。

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