C ++ - невозможно запустить правильно (0xc0150002) - PullRequest
16 голосов
/ 26 февраля 2011

Я пытаюсь запустить приложение OpenCV через Microsoft Visual C++ 2010 Express и получить следующее сообщение:

enter image description here

Как я могу решить эту проблему?

Ответы [ 10 ]

11 голосов
/ 28 февраля 2011

Я согласен с Brandrew, проблема, скорее всего, вызвана отсутствующими библиотеками, которые невозможно найти ни в системном пути, ни в папке, где находится исполняемый файл.Попробуйте разместить рядом с исполняемым файлом следующие библиотеки DLL:

  • среды выполнения Visual Studio C ++ (в VS2008 их можно найти в таких местах, как C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC \ redist \ x86.) Включите все 3 файла DLL, а также файл манифеста.
  • четыре dll OpenCV (cv210.dll, cvaux210.dll, cxcore210.dll и highgui210.dll или те, которые есть в вашей версии OpenCV).)
  • , если это все еще не работает, попробуйте среду выполнения отладки VS (исполняемые файлы, скомпилированные для «Debug», используют другой набор библиотек DLL, называемый что-то вроде msvcrt9d.dll, важной частью является «d»)

В качестве альтернативы попробуйте загрузить исполняемый файл в Dependency Walker (http://www.dependencywalker.com/), он должен указать недостающие библиотеки для вас.

7 голосов
/ 06 марта 2017

В моем случае Визуальный детектор утечек Я использовал для отслеживания утечек памяти в Visual Studio 2015 отсутствовал файл манифеста Microsoft Microsoft.DTfW.DHL.manifest, см. Ссылку Создание визуального детектора утечек весь путь вниз.Этот файл должен находиться в папке, где vld.dll или vld_x64.dll находится в вашей конфигурации, скажем C:\Program Files (x86)\Visual Leak Detector\bin\Win32, C:\Program Files (x86)\Visual Leak Detector\bin\Win64, Debug или x64/Debug.

1 голос
/ 08 марта 2015

Просто запустите файл .exe в средстве обхода зависимостей (http://dependencywalker.com/) и он укажет вам недостающие dll и скачает эти dll (www.dll-files.com) и вставит в c: windows: system32 и папку как ваш .exe и даже предоставит путь к этим dll в переменной path.

1 голос
/ 09 января 2012

Я получил эту ошибку при попытке запустить файл решения моего друга в Visual Studio 2010 после преобразования его в версию 2010.Исправить несложно, я создаю новый проект, щелкаю правой кнопкой мыши по решению, чтобы добавить существующие .cpp и .h файл из проекта моего другаТогда это работает.

1 голос
/ 26 февраля 2011

Я так понимаю, это окно Vista!Я часто получал это при первой попытке портировать программу DirectX с XPsp3 на Vista.

Это проблема .dll.OpenCV runtime.dll будет вызывать system.dll, который больше не будет поставляться с Vista, поэтому, к сожалению, вам придется немного разобраться, какой system.dll он пытается найти.(system.dll может быть vc2010 или vista)

Эта ошибка также вызвана неправильной установкой .dll (т.е. не выкатывается) hth Happy hunting

0 голосов
/ 18 ноября 2015

В нашем случае (рядом с попыткой Dependency Walker) это был некорректный файл манифеста, смешивающий 64 и 32 бита.Мы используем два дополнительных файла во время работы в режиме отладки: dbghelp.dll и Microsoft.DTfW.DHL.manifest.Файл манифеста выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- $Id -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable />
    <assemblyIdentity type="win32" name="Microsoft.DTfW.DHL" version="6.11.1.404" processorArchitecture="x86" />
    <file name="dbghelp.dll" />
</assembly>

Обратите внимание на поле «ProcessArchitecture».Он был установлен на «amd64» вместо «x86».Вероятно, это не всегда причина, но в нашем случае это была основная причина, поэтому она может быть полезна для некоторых.Для 64-битных прогонов вам понадобится amd64.

0 голосов
/ 18 ноября 2015

Вот мое решение для этой ошибки:

(Приложение не удалось правильно запустить (OXO15OOO20). Нажмите, чтобы закрыть приложение).

  1. В меню «Пуск» выберите «Администрирование», а затем «Резервное копирование Windows Server».

  2. Нажмите «Файл», нажмите «Параметры», а затем в разделе «Очистка диска» нажмите «Удалить файлы», а затем нажмите O.K, и удалять до 0 байт

Не беспокойтесь об этом просто он удаляет объем дискового пространства на вашем компьютере.

0 голосов
/ 02 июня 2014

Это потому, что есть DLL, которая отсутствует или не может быть найдена в вашей программе.

В вашем случае, я полагаю, вам не хватает библиотеки openCV.Вы можете найти их в каталоге «build», который поставляется с открытым резюме.Если вы используете VS2010 и собираете программу для x86, вы можете найти ваши dll здесь в "opencv \ build \ x86 \ vc10 \ bin".Просто скопируйте все эти файлы в папки Debug и Release, и это должно решить ваши проблемы.

Обычно вы можете решить эту проблему, используя следующую процедуру:

  1. Загрузите Dependency Walker отсюда:http://www.dependencywalker.com/
  2. Загрузите файл .exe в Dependency Walker (в папке Debug или Release ваших проектов), в вашем случае это будет DisplayImage.exe
  3. Найдите все библиотеки DLL, которыеотсутствуют, повреждены или имеют неверную архитектуру (например, x64 вместо x86), они будут выделены красным.
  4. Для каждой отсутствующей библиотеки DLL либо скопируйте ее в папки Debug или Release с.exe, либо установите требуемое программное обеспечение, либо добавьте путь к библиотекам DLL в переменные среды (Win + Pause -> Дополнительные параметры системы -> Переменные среды)

Помните, что вам понадобитсяэти библиотеки DLL в том же каталоге, что и ваш .exe.Если вы копируете .exe из папки Release в другое место, вам также понадобятся эти DLL, скопированные с помощью .exe.Для мобильности я стараюсь иметь тестовую Виртуальную машину с чистой установкой Windows (без обновлений или программ), и я прохожу Зависимости, используя Dependency Walker по одному, пока программа не запустится успешно.

Это распространенная проблема.Также смотрите эти вопросы:

Не удается запустить vc ++, код ошибки 0xc0150002

Не удалось запустить приложение (0xc0150002) с libcurl C ++ Windows 7VS 2010

0xc0150002 Ошибка при попытке запустить VC ++ libcurl

Приложению не удалось запуститься корректно 0xc150002

Приложение не удалось запустить правильно (0 * 0150002) - OpenCv

Удачи!

0 голосов
/ 23 декабря 2013

я встречал такую ​​проблему.Visual Studio 2008 четко сказал: проблема была вызвана libtiff.dll.Он не может быть загружен по какой-то причине, вызванной его манифестом (на самом деле, эта dll вообще не имеет манифеста).Я исправил это, когда удалил libtiff.dll из моего проекта (но одновременно я потерял способность открывать сжатые файлы TIFF!).Я перекомпилировал вышеупомянутую dll, но проблема все еще остается.Интересно, что у меня на собственной машине такой ошибки нет.Три других компа отказались загружать мою прогу.Внимание!!!Здесь http://www.error -repair-tools.com / ppc / error.php? T = 0xc0150002 один мудрый мальчик написал, что эта ошибка была вызвана проблемой с реестром и предлагает ремонт инструмента.Я твердо уверен, что этот «инструмент восстановления» установит вредоносную программу на ваш компьютер.

0 голосов
/ 19 ноября 2013

Даже когда я сталкивался с той же ошибкой, я исправил ее потом ... Две вещи, которые вам нужно посмотреть

  1. Правильно ли задан системный путь в переменных вашей среды
  2. Проверьтепрепроцессоры в Project Properties-> c / c ++ -> препроцессоры.Проверьте, включили ли вы _CONSOLE, это вызывало ошибку для меня.Для некоторых приложений вам нужно включить WIN32;_WINDOWS;_CONSOLE;_DEBUG;QT_DLL;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;COIN_DLL;SOQT_DLL;QT_DEBUG;

Я получил эту ошибку, когда работал в приложении coin3D.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...