当我使用VisualStudio(2017社区版)编译一个简单的“ Hello World” C ++程序时,该可执行文件在装有Windows 10的开发计算机上运行,但是在具有相同操作系统和体系结构的另一台计算机上,该程序无法启动错误“ 0xc000007b”(“应用程序无法正确启动”)。
有人建议我可以尝试使用VisualStudio创建可移植可执行文件吗?这似乎是VisualStudio的常见问题,但我在网络上找不到解决该问题的有用方法。
这是我程序的C ++代码:
#include <Windows.h>
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int cmdShow)
{
MessageBox(NULL, "Program started", "Message", MB_OK);
return 0;
}
这是根据VisualStudio使用的一组编译选项( x64 的 Release 模式):
/GS /TP /W3 /Zc:wchar_t /I"D:\test\build" /I"D:\test"
/I"C:\Program Files (x86)\Visual Leak Detector\include" /Gm- /O2 /Ob2
/Fd"test1.dir\Release\vc141.pdb" /Zc:inline /fp:fast /D "_WINDOWS"
/D "_VARIADIC_MAX=10" /D "NOMINMAX" /D "NDEBUG" /D "CMAKE_INTDIR=\"Release\""
/D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /GR /Gd /Oy /MD /Fa"Release/"
/EHsc /nologo /Fo"test1.dir\Release\" /Ot /Fp"test1.dir\Release\test1.pch" /diagnostics:classic
这是 dumpbin 报告的链接到可执行文件的库的列表:
D:\test\build\Release>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\dumpbin.exe" /DEPENDENTS test1.exe
Microsoft (R) COFF/PE Dumper Version 14.16.27032.1
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file test1.exe
File Type: EXECUTABLE IMAGE
Image has the following dependencies:
USER32.dll
VCRUNTIME140.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
KERNEL32.dll
Summary
1000 .data
1000 .pdata
1000 .rdata
1000 .reloc
1000 .rsrc
1000 .text
答案 0 :(得分:1)
您需要在目标计算机上安装适当的 Visual C ++ Redistributable 。
Redistributable for Visual C++ 2015, 2017, 2019
在您的开发计算机上,Visual Studio已经安装了它。