Как запустить игру DirectX через командную строку - PullRequest
0 голосов
/ 19 июня 2020

У меня есть программа для DirectX, написанная на C ++. Я скомпилировал его с помощью Visual Studio, но хочу запустить эту программу через командную строку. Я попытался запустить Sample Direct3D Game из командной строки, чтобы убедиться, но это тоже не сработало. Эта игра отлично работает, когда я собираю ее из Visual Studio 19 или Visual Studio 17, но я не могу запустить ее из командной строки. Каждый раз, когда я это делаю, всплывает окно со следующим сообщением.

Выполнение кода не может продолжаться, потому что MSVCP140D_APP.dll не был найден. Переустановка программы может решить эту проблему.

Такое же сообщение отображается для vccorlib140d_app.Dll, CONCRT140D_APP.dll и VCRUNTIME140D_APP.dll. Однако я не сталкиваюсь с такими проблемами при запуске той же программы через Visual Studio. Я перепробовал почти все, что мог найти об этой проблеме, но не смог ее решить. Файл .exe, который я пытался запустить, находится по пути: ..Direct3D_game_sample\cpp\x64\Debug\Simple3DGameDX

Я также пробовал запустить простую программу OpenCV , написанную на C ++, для чтения и отображения образца видеофайла. , но тоже не смог. Он отлично работает через Visual Studio, но не через командную строку. Программа OpenCV возвращает следующие ошибки.

warning: Error opening file (/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:940)
warning: vtest.avi (/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:941)
OpenCV(3.4.9) Error: Bad argument (CAP_IMAGES: cannot find starting number (in the name of file): vtest.avi) in cv::icvExtractPattern, file C:\build\3_4_winpack-build-win64-vc15\opencv\modules\videoio\src\cap_images.cpp, line 246
[ERROR:0] VIDEOIO(cvCreateFileCapture_Images(filename.c_str())): raised OpenCV exception:
OpenCV(3.4.9) C:\build\3_4_winpack-build-win64-vc15\opencv\modules\videoio\src\cap_images.cpp:246: error: (-5:Bad argument) CAP_IMAGES:cannot find starting number (in the name of file): vtest.avi in function 'cv::icvExtractPattern'

PS: Я использую Windows 10 на своем компьютере, а в приложении Sample DirectX Game используется DirectX 11.

Заранее спасибо

1 Ответ

1 голос
/ 20 июня 2020

Поскольку ваша программа использует версию MSVCP140D_APP.dll CRT, это означает, что вы создали приложение универсальной платформы Windows (т. Е. Приложение UWP ). Вы не можете запустить такое приложение, как приложение Win32, из командной строки и заставить его работать. Все образцы на Windows -universal-samples GitHub являются приложениями UWP.

Вы можете использовать команды Powershell для установки и запуска пакета appx, созданного из Visual Studio. См. Microsoft Docs .

Если вам нужно настольное приложение Win32, вам нужно создать другую программу. См. directx-vs-templates для шаблонов Win32 VS в стиле шаблонов «UWP».

...