【问题标题】:How to compile Winsock Control 6.0 on VB6 in Windows 10?如何在 Windows 10 的 VB6 上编译 Winsock Control 6.0?
【发布时间】:2020-12-15 06:33:39
【问题描述】:

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

mswinsck.ocx 无法加载

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

另外值得注意的是,编译后的.exe,当从Win7/8 编译时,加载ws2_32.dll 没有问题。只是编译步骤在Win10上不行。

Running 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有关),找不到:

有没有人知道如何在Win10上用VB6的“Winsock Control”编译?

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

编辑: 附加信息:我已安装“VB6 Service Pack 6”,VB 版本为“版本 9782 VBA 零售 6.0.9782”,mswinsck.ocx 文件本身的版本为@ 987654334@(感谢 cmets,我知道有一个更新的存在:6.1.98.16

【问题讨论】:

  • 很遗憾,我无法重现该问题。 WinSock 和 MSFlexGrid 在我的 Win10 电脑上都能正常编译。
  • @BrianMStafford 对我来说是个好消息,你知道你在哪个 Windows 更新发布频道上吗? (Insider 或 Semi-Annual 或 LTSC 或默认的?)你还能在你的 mswinsck.ocx 文件上给我一个校验和(MD5 或 SHA1 或 CRC 或任何东西)吗? (例如 7zip 允许你获取文件的各种校验和,我的 mswinsck.ocx 的 sha1 是 4E97BF9519C83835DA9DB309E61EC87DDF165167
  • 我不知道我的发布频道,但“数据的 CRC 校验和”是 39A6C54D。
  • @BrianMStafford 奇怪,我的 mswinsck.ocx 的 CRC32 是 6099DCFB - 你能把你的 mswinsck.ocx 副本上传到某个地方吗? (gdrive/OneDrive/mega.nz 或ratma.net/upload.php 或任何地方)
  • @BrianMStafford 谢谢!确实很奇怪,你的 mswinsck.ocx 有版本6.1.98.16,我的副本有版本6.1.97.82,你的比我的更新! (你的副本也是微软在 2009 年签署的,我的副本是微软在 2004 年签署的)——但似乎这不是全部,用你的副本替换我的副本并没有改变我得到的错误。想知道你在哪里文件来自(可能是一个包,可能来自 Windows 更新本身?idk)

标签: windows-10 vb6 winsock


【解决方案1】:

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

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

这通常可以解决问题。

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

【讨论】:

  • 实际上修复了它!对msflxgrd.ocx 也做同样的事情,修复了与 MSFlexGrid 相同的问题!谢谢
  • 很高兴它成功了!您可能必须为其他 OCX 执行此操作。这不是一个很好的解决方案,但它有效。
  • 很好地尝试编译约 140,000 行的 VB6 项目,只有 mswinsck.ocxmsflxgrd.ocx 无法编译 ^^(我知道它有多大,但在 2016 年是 133,445 行-09-03,并从那时起成长)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-30
相关资源
最近更新 更多