С++ - невозможно запустить правильно (0xc0150002)
Я пытаюсь запустить приложение OpenCV
через Microsoft Visual C++ 2010 Express
и получить следующее сообщение:
![enter image description here]()
Как я могу решить эту проблему?
Спасибо.
Ответы
Ответ 1
Я согласен с Brandrew, проблема, скорее всего, вызвана некоторыми недостающими DLL, которые не могут быть найдены ни на системном пути, ни в папке, где находится исполняемый файл. Попробуйте поместить следующие DLL рядом с исполняемым файлом:
- среда исполнения Visual Studio С++ (в 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 runtime (исполняемые файлы, скомпилированные для "Отладки", используют другой набор DLL, названный как-то вроде msvcrt9d.dll, важной частью является "d" )
В качестве альтернативы попробуйте загрузить исполняемый файл в Dependency Walker (http://www.dependencywalker.com/), он должен указать отсутствующие DLL для вас.
Ответ 2
В моем случае Visual Leak Detector, который я использовал для отслеживания утечек памяти, отсутствовал файл манифеста Microsoft Microsoft.DTfW.DHL.manifest
.
Ответ 3
Я понимаю, что это окно Vista! Я часто получал это, когда сначала пытался перенести программу DirectX с XPsp3 на Vista.
Это проблема .dll. OpenCV runtime.dll вызовет файл system.dll, который больше не будет отправлен Vista, поэтому, к сожалению, вам придется немного поискать, чтобы найти файл system.dll, который он пытается найти. (system.dll может быть vc2010 или vista)
Эта ошибка также вызвана неправильной установкой .dll(т.е. не развертывается)
НТН
Счастливая охота
Ответ 4
Я получил эту ошибку при попытке запустить файл решения моего друга visual studio 2010 после преобразования его в версию 2010 года. Исправить легко, я создаю новый проект, щелкните правой кнопкой мыши по решению, чтобы добавить существующие файлы .cpp и .h из моего проекта friend. Затем он работает.
Ответ 5
Просто запустите файл .exe в ходу зависимостей (http://dependencywalker.com/)
и он укажет вам недостающие DLL и загрузит эти dll (www.dll-files.com) и вставляет в c: windows: system32 и папку как ваш .exe и даже предоставляет путь для этих dll в переменной пути.
Ответ 6
Даже я столкнулся с такой же ошибкой, после чего я исправил ее...
Две вещи, которые вам нужно изучить
- Правильно ли установлен ваш системный путь в переменных среды
- Проверьте предварительные процессоры в Project Properties → c/С++ → Pre-processor. Проверьте, включили ли вы
_CONSOLE
, это вызывало ошибку для меня. Для некоторых приложений вам необходимо включить WIN32;_WINDOWS;_CONSOLE;_DEBUG;QT_DLL;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;COIN_DLL;SOQT_DLL;QT_DEBUG;
Я получил эту ошибку, когда работал в приложении coin3D.
Ответ 7
Я встретил такую проблему. Visual Studio 2008 ясно сказал: проблема была вызвана libtiff.dll. Он не может быть загружен для некоторого реасома, вызванного его манифестом (по сути, у этой DLL вообще нет манифеста). Я исправил это, когда я удалил libtiff.dll из моего проекта (но одновременно я потерял способность открывать сжатые TIFF!). Я перекомпилировал вышеупомянутую dll, но проблема все еще остается. Интересно, что на моей машине у меня нет такой ошибки. Три других комп отказались загружать мою прогу. Внимание!!! Здесь http://www.error-repair-tools.com/ppc/error.php?t=0xc0150002 один мудрый мальчик написал, что эта ошибка была вызвана проблемой с реестром и предлагает инструмент восстановления. У меня есть твердая догадка, что этот "инструмент ремонта" установит на ваш компьютер некоторые вредоносные программы.
Ответ 8
Это потому, что есть DLL, что ваша программа отсутствует или не может найти.
В вашем случае я считаю, что вам не хватает DLL openCV. Вы можете найти их в каталоге "build", который поставляется с открытым CV. Если вы используете VS2010 и строите программу x86, вы можете найти ваши dll здесь в разделе "opencv\build\x86\vc10\bin". Просто скопируйте все эти файлы в папки Debug и Release, и они должны решить ваши проблемы.
Как правило, эту проблему можно решить, выполнив следующую процедуру:
- Загрузите Dependency Walker здесь: http://www.dependencywalker.com/
- Загрузите ваш .exe файл в Dependency Walker (в ваших проектах Debug или Release folder), в вашем случае это будет DisplayImage.exe
- Ищите любую DLL, которая отсутствует или повреждена, или для неправильной архитектуры (например, x64 вместо x86) они будут выделены красным цветом.
- Для каждой DLL, которую вам не хватает, скопируйте в свои папки Debug или Release с вашим .exe или установите необходимое программное обеспечение или добавьте путь к DLL к переменным среды (Win + Pause → Advanced System Settings → Переменные среды)
Помните, что вам нужно будет иметь эти библиотеки DLL в том же каталоге, что и ваш .exe. Если вы скопируете файл .exe из папки "Release" в другое место, вам понадобятся эти DLL файлы, скопированные с помощью .exe. Для переносимости я стараюсь попробовать тестовую виртуальную машину с чистой установкой Windows (никаких обновлений или программ не установлен), и я просматриваю зависимости с помощью Dependency Walker один за другим, пока программа не работает успешно.
Это обычная проблема. Также см. Следующие вопросы:
Не удается запустить vС++, код ошибки 0xc0150002
Приложение не удалось запустить (0xc0150002) с помощью libcurl С++ Windows 7 VS 2010
0xc0150002 Ошибка при попытке запустить VС++ libcurl
Приложение не смогло правильно запустить 0xc150002
Приложение не смогло начать правильно (0 * 0150002) - OpenCv
Удачи!
Ответ 9
Вот мое решение для этой ошибки:
(Приложение не смогло начать правильно (OXO15OOO20). Нажмите, чтобы закрыть приложение).
-
В меню "Пуск" выберите "Администрирование", затем "Резервное копирование Windows Server".
-
Нажмите "Файл", выберите "Параметры", а затем "Очистка диска" нажмите "Удалить файлы", а затем нажмите "O.K",
и удалять, пока он не достигнет 0 byete
No Worry Об этом просто удаляет объем дискового пространства на вашем компьютере.
Ответ 10
В нашем случае (рядом с Try 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>
Обратите внимание на поле "architectureArchitecture". Он был установлен на "amd64" вместо "x86". Вероятно, это не всегда причина, но в нашем случае это была основная причина, поэтому она может быть полезна для некоторых. Для 64-битных прогонов вам понадобится "amd64".