Не удалось правильно инициализировать приложение (0xc0150002) - PullRequest
3 голосов
/ 21 августа 2010

Я пытаюсь скомпилировать SFML-программу, написанную на Visual C ++ 2010. Она прекрасно компилируется, но когда я запускаю исполняемый файл, я получаю эту ошибку:

The application failed to initialize properly (0xc0150002). Click on OK to terminate the application.

Это происходит каждый раз, когда япопробуйте запустить приложение, которое использует SFML, я включил библиотеки, которые я использовал во внешних зависимостях, библиотеки и библиотеки включения находятся в библиотеке lib и включают файлы в папке VC, а библиотека DLL находится в той же папке, что и мой exe,Как я могу исправить эту проблему?

EDIT

Вот выходные данные отладчика отладки:

    'SFML.exe': Loaded 'C:\Documents and Settings\Greg\My Documents\Visual Studio 2010\Projects\SFML\Debug\SFML.exe', Symbols loaded.
    'SFML.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', Cannot find or open the PDB file
    'SFML.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', Cannot find or open the PDB file
    'SFML.exe': Loaded 'C:\Documents and Settings\Greg\My Documents\Visual Studio 2010\Projects\SFML\Debug\sfml-graphics.dll', Cannot find or open the PDB file
    LDR: LdrpWalkImportDescriptor() failed to probe C:\Documents and Settings\Greg\my documents\visual studio 2010\Projects\SFML\Debug\sfml-graphics.dll for its manifest, ntstatus 0xc0150002
    Debugger:: An unhandled non-continuable exception was thrown during process load
    The program '[2792] SFML.exe: Native' has exited with code -1072365566 (0xc0150002).

EDIT

Я попытался перекомпилироватьбиблиотека, но я получаю эту ошибку:

    C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(C:\SFML-1.5\build\vc2008\..\..\Temp\vc2008\sfml-network\Debug DLL\sfml-network.dll) does not match the Linker's OutputFile property value (C:\SFML-1.5\lib\vc2008\sfml-network-d.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(992,5): warning MSB8012: TargetName(sfml-network) does not match the Linker's OutputFile property value (sfml-network-d). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).

Мне нужно изменить значение TargetPath, но я не могу найти вариант, чтобы сделать это, кто-нибудь знает, как я могу изменить его?

Ответы [ 5 ]

3 голосов
/ 10 апреля 2012

Я исправил это, изменив конфигурацию свойств проекта: / MT для выпуска и / MTd для отладки (свойства проекта> C / C ++> Генерация кода> Библиотека времени выполнения)

3 голосов
/ 21 августа 2010

Это, вероятно, связано с компиляцией SFML с другой версией Visual C ++ (я полагаю, это 2008 или даже 2005). Вы явно отсутствует соответствующий файл манифеста и библиотеки msvc * .dll. Я бы посоветовал перекомпилировать SFML самостоятельно, используя VS 2010, так как это избавит вас от многих проблем с настройкой манифеста.

2 голосов
/ 21 августа 2010

Запустите exe-файл в отладчике VS 2010 со следующими настройками:

  1. Отладка-> Параметры и настройки-> Отладка-> Окно вывода-> Сообщения о загрузке модуля - Вкл.
  2. Отладка-> Исключения-> Исключения Win32-> c0000135 Невозможно найти DLL (должна быть включена)

Теперь, я думаю, это должно помочь вам определить, какая DLL не загружается.

1 голос
/ 29 августа 2010

Microsoft Visual Studio 2010 не была совместима с сборками SFML 2008 года. Я исправил проблему, не используя 2010 и не используя Dev-C ++.

0 голосов
/ 27 января 2016

Если вы используете Visual Studio 2015, измените набор инструментов платформы на VS 2010 или VS 2008. Этот параметр доступен в Project-> Properties-> Configuration Configuration-> General.

...