VisualStudio C ++ создал исполняемый файл, который нельзя развернуть на других компьютерах Win10 (ошибка «0xc000007b») - PullRequest
0 голосов
/ 27 января 2020

Когда я компилирую простую программу C ++ «Hello World» с VisualStudio (версия для сообщества 2017 г.), исполняемый файл запускается на компьютере разработчика с 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 (режим Release для x64 ):

/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

И это список библиотек, связанных с исполняемым файлом, как сообщается свалка :

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

1 Ответ

1 голос
/ 27 января 2020

Вам необходимо установить соответствующий распространяемый Visual C ++ на целевом компьютере.

распространяемый для Visual C ++ 2015, 2017, 2019

На компьютере разработчика он уже установлен вместе с Visual Studio.

...