2017-01-28 13 views
0

Я сделал небольшую C++-игру в Visual Studio 2015 с использованием SFML-библиотеки, и она отлично работает, когда я нажимаю кнопку «► Local Windows Debugger» в режиме «Debug-x86».Как создать приложение на C++ в Visual Studio 2015?

Моя игра не работает на компьютере кто-либо другой, потому что он говорит следующие DLL файлы отсутствуют:

msvcp140.dll
msvcp140d.dll
vcruntime140d.dll
ucrtbased.dll
appcrt140d .dll
desktopcrt140d.dll

Я знаю, что эти файлы приходит из Visual Studio 2015 Instalation, но для тех, у кого нет VS, что я могу сделать, чтобы исправить эти проблемы?

Я скопировал первую DLL 4 из моего компьютера C: \ Windows \ System32 (msvcp140.dll, msvcp140d.dll, vcruntime140d.dll, ucrtbased.dll) на пути ехе, но не мог найти последние 2 в никуда. (appcrt140d.dll, desktopcrt140d.dll)

Я понятия не имею, как сделать exe-заявку со всеми ее зависимостями dll.

Когда я использую режим «Release-x86», он, кстати, бросает следующую ошибку.

Исключение брошено в 0x62234AE7 (vcruntime140d.dll) в Timber.exe: 0xC0000005: Нарушение прав доступа чтения местоположение 0x00000000.

Если есть обработчик для этого исключения, программа может быть безопасно продолжена.

+1

Если у вас есть зависимости, и если они не обеспечены ОС, то вы должны предоставить их. – macroland

+2

Вам необходимо распространять распространяемую Visual Studio C++. [Link] (https://www.microsoft.com/en-ca/download/details.aspx?id=48145). Обратите внимание, что в распространяемые библиотеки включены только выпуски DLL. –

+3

Конфигурация Release-x86 выглядит непоследовательно. Проверьте настройки входных данных компоновщика и убедитесь, что ссылки на отладочные файлы любых библиотек не указаны. – Laszlo

ответ

0

Я исправил его, настроив режим освобождения библиотеки SFML в свойствах проекта и переключившись в режим «Release-x86» вместо «Debug-x86».

Вы можете узнать больше о том, как настроить SFML проекты здесь: https://www.sfml-dev.org/tutorials/2.4/start-vc.php