Windows 10与Windows7之间的WS2_32.dll行为问题

时间:2019-01-17 17:36:15

标签: windows-7 visual-studio-2017 windows-10 log4cxx

找不到与现有问题有关的任何合适解决方案,因此请在此处提出新问题。 我们使用具有WS2_32.LIB作为依赖项的log4cxx。 Windows SDK版本10.0.16299.0中提供了WS2_32.LIB。 在Windows7 WS2_32.dll上使用此log4cxx.dll及其所有依赖项时,将正确加载它们并正常启动应用程序。

但是在Windows 10环境中WS2_32.dll期望依赖的dll诸如API-MS-WIN-CORE-CRT-L1-1-0.DLL属于Windows10或任何可导致应用程序的Microsoft Visual C ++ Redistributable错误。

WS2_32.dll中的差异及其在Windows7和Windows10之间的依赖关系可以通过依赖关系查看器清楚地看到。

Windows 10上的

WS2_32.dll: enter image description here

而 Windows7上的WS2_32.dll是 enter image description here

如此处所示,API-MS-WIN-CORE-CRT-L1-1-0.DLL不是Windows7中的从属dll,因为Windows 10中的dll在系统中不存在,导致应用程序错误。

那么,使应用程序成功运行的方法应该是什么?在编译log4cxx.dll以避免在Windows 10中出现此问题时,应提供哪些替代依赖关系而不是WS2_32.LIB?在哪里可以找到有关Windows OS版本之间的此类更改的文档? 请提出建议。

1 个答案:

答案 0 :(得分:1)

旧的depends.exe不支持那些API sets,并显示错误的数据。

使用名为Dependencies的开源替换:

  

Dependencies是对旧版软件Dependency Walker的重写   它随Windows SDK一起提供,但其开发停止了   大约在2006年。依赖关系可以帮助Windows开发人员进行故障排除   他们的dll加载依赖性问题。

enter image description here