升级到 Visual Studio 2019 和 v142 工具集后,为什么我的程序在 Windows 7 上不再 运行?
Having upgraded to Visual Studio 2019 and the v142 toolset, why does my program no longer run on Windows 7?
我正在通过 Visual Studio 2019 提供的 v142 工具集将我们的代码库升级到 C++17。当 运行 我的程序使用此工具集编译时,OS 报告:
(program name).exe - System Error
The program can't start because api-ms-win-core-processenvironment-l1-2-0.dll is missing from your computer. Try reinstalling the program to fix this problem.
OK
这是出乎意料的。先前的构建使用 v140。两个构建都使用 10.0.15063.0 SDK。 WINVER 在命令行上设置为 0x0601,_WIN32_WINNT 也是如此,因此我预计不会发生任何意外情况。 运行 depends.exe 调查依赖关系产生了以下结果:
右边是v140构建的结果,左边是v142构建的结果。如您所见,它们都绑定到相同的运行时,并且缺少的 DLL 绑定到任何奇异的东西:第一项正在寻找 GetCommandLineW
和 GetCurrentDirectoryW
.
您似乎在链接 mincore.lib
。该库旨在减少 windows 8 及更高版本上加载的 DLL,在 Windows 7:
上不受支持
Compatibility with Windows 7, Windows Server 2008 R2 and older operating systems: Binaries that link to MinCore.lib or MinCore_Downlevel.lib are not designed to work on Windows 7, Windows Server 2008 R2 or earlier. Binaries that need to run on earlier versions of Windows or Windows Server must not use either MinCore.lib or MinCore_Downlevel.lib.
我正在通过 Visual Studio 2019 提供的 v142 工具集将我们的代码库升级到 C++17。当 运行 我的程序使用此工具集编译时,OS 报告:
(program name).exe - System Error
The program can't start because api-ms-win-core-processenvironment-l1-2-0.dll is missing from your computer. Try reinstalling the program to fix this problem.
OK
这是出乎意料的。先前的构建使用 v140。两个构建都使用 10.0.15063.0 SDK。 WINVER 在命令行上设置为 0x0601,_WIN32_WINNT 也是如此,因此我预计不会发生任何意外情况。 运行 depends.exe 调查依赖关系产生了以下结果:
右边是v140构建的结果,左边是v142构建的结果。如您所见,它们都绑定到相同的运行时,并且缺少的 DLL 绑定到任何奇异的东西:第一项正在寻找 GetCommandLineW
和 GetCurrentDirectoryW
.
您似乎在链接 mincore.lib
。该库旨在减少 windows 8 及更高版本上加载的 DLL,在 Windows 7:
Compatibility with Windows 7, Windows Server 2008 R2 and older operating systems: Binaries that link to MinCore.lib or MinCore_Downlevel.lib are not designed to work on Windows 7, Windows Server 2008 R2 or earlier. Binaries that need to run on earlier versions of Windows or Windows Server must not use either MinCore.lib or MinCore_Downlevel.lib.