Название: 0xc000007b при запуске под виндой Отправлено: kambala от Февраль 02, 2013, 20:17 Здравствуйте. Столкнулся с проблемой: на некоторых машинах при запуске приложения вылазит ошибка 0xc000007b. Проблема пока что была выявлена на двух машинах — XP SP3 x86 и 7 SP1 x64, так что закономерности не видно.
Приложение (32-х битное) собрано на 7 SP1 x64 с помощью студии 2012 (тулчейн 110_xp) и самособранной Qt 4.8.4 (использовал VS2012 x86 Native Tools Command Prompt ради 32-битности). Вместе с ним распространяю msvcr110.dll и msvcp110.dll чтобы не нужно было устанавливать vcredist. Тестировал на проблемных конфигурациях, указанных в начале — всё работало. На просторах интернета самым дельным советом оказалась проверка через dependency walker на предмет зависимостей от 64-битных дллок, но таких обнаружено не было. Также предлагали запустить chkdsk, но это, естественно, не помогло :) Помогите пожалуйста понять в чём дело и как это исправить. Приложение: http://www.mediafire.com/download.php?d1jf4hzgxgwlh33, студийные дллки: http://www.mediafire.com/download.php?4uv0lsfa1pd5pi4 Название: Re: 0xc000007b при запуске под виндой Отправлено: Bepec от Февраль 02, 2013, 23:31 Я помню такую ошибку. Вываливалась у меня из-за неправильной настройки проекта в студии, вроде. Исчезла магическим образом после перестановки IDE и пересборки программы.
PS постараюсь накопать ту информацию, что нашёл по этой ошибке, куда то я её записал ведь... update: записи остались на работе, печалька. Проблема на W7 64 sp1 действительно существует :) Поразбираюсь. update: при установке рантайма 2012 и запуске с его дллками, выпадает в указанную ошибку. При копировании ваших дллок - выдаёт какую то ошибку настроек и запускается. Название: Re: 0xc000007b при запуске под виндой Отправлено: Bepec от Февраль 03, 2013, 10:20 Отделяю новую информацию.
Ошибка при: копировании в папку microsoft версии msvcp110.dll. (только его). Нет ошибки: при использовании ваших dll. Какая то тут засада с ними... 1 вложение http://smotr.im/c07r 2 вложение http://smotr.im/c07s Название: Re: 0xc000007b при запуске под виндой Отправлено: Bepec от Февраль 03, 2013, 10:47 Если можно, соберите пустой проектик с такими же настройками и зависимостями. А я его поковыряю :)
Название: Re: 0xc000007b при запуске под виндой Отправлено: kuzulis от Февраль 03, 2013, 11:51 Но там с этими библиотеками недостаточно просто их скопировать,
их нужно еще и зарегистрировать, если не ошибаюсь. Название: Re: 0xc000007b при запуске под виндой Отправлено: Bepec от Февраль 03, 2013, 12:38 Самое интересное что без регистрации с его библиотеками всё работает :D
PS и вроде регистрация нужна для их поиска. Если же они в папке с программой, то без разницы. Поправьте меня, если я ошибаюсь. Название: Re: 0xc000007b при запуске под виндой Отправлено: Aleksei от Февраль 03, 2013, 13:14 1. Если не установлен Update 1 на Visual Studio 2012, то установить.
2. В свойствах проекта Configuration Properties/Linker/System установить Minimum Required Version значение 5.01 3. Пересобрать проект. Название: Re: 0xc000007b при запуске под виндой Отправлено: kambala от Февраль 03, 2013, 16:00 update: при установке рантайма 2012 и запуске с его дллками, выпадает в указанную ошибку. При копировании ваших дллок - выдаёт какую то ошибку настроек и запускается. ты рантайм 32- или 64-битный ставил? а ошибка настройки — это наверное потому что программа была запущена не от админа.Отделяю новую информацию. честно говоря не понял что я должен увидеть на этих картинкахОшибка при: копировании в папку microsoft версии msvcp110.dll. (только его). Нет ошибки: при использовании ваших dll. Какая то тут засада с ними... 1 вложение http://smotr.im/c07r 2 вложение http://smotr.im/c07s Если можно, соберите пустой проектик с такими же настройками и зависимостями. А я его поковыряю :) ок, сейчас попробуюPS и вроде регистрация нужна для их поиска. Если же они в папке с программой, то без разницы. Поправьте меня, если я ошибаюсь. насколько я знаю — не нужна. Qtшные дллки же тоже не нужно регистрировать.1. Если не установлен Update 1 на Visual Studio 2012, то установить. программа была собрана именно с такими настройками и Update 1 уже был установлен, перед сборкой выполнялась полная очистка2. В свойствах проекта Configuration Properties/Linker/System установить Minimum Required Version значение 5.01 3. Пересобрать проект. Название: Re: 0xc000007b при запуске под виндой Отправлено: kambala от Февраль 03, 2013, 16:44 вот тестовый проект для студии 2012. в архиве также находится скомпилированный экзешник с помощью Qt 4.8.4.
отличия от реального проекта — в конфигурации ресурсов по умолчанию был добавлен дефайн _USING_V110_SDK71_, а также закомментирована строка в файле ресурсов #include "resource.h" (этот файл когда-то был создан автоматически студией). на всякий случай вот содержимое этого файла: Код
с прикреплёнными файлами тут какая-то беда, так что вот зеркало: http://www.mediafire.com/?r1d33311wkb9474 Название: Re: 0xc000007b при запуске под виндой Отправлено: Bepec от Февраль 03, 2013, 17:59 Потыкался, посмотрел обращения - грит не подходит dll.
CRC дллки не совпадает тупо. Твою сглатывает и продолжает работать (что-то там в реестре). Другую дллку сгрызает и видимо какой то функции оттуда не достаёт. Видимо причина такой гадости, что дллки тянутся не твои из папки у пользователя, а, допустим, с windows. PS мне импонирует версия, что CRC проверочное не совпадает => длл не загружает => пытается обратиться к функции в dll => падает напрочь. Название: Re: 0xc000007b при запуске под виндой Отправлено: kambala от Февраль 03, 2013, 19:03 в винде же первым путём поиска является текущая папка, а потом уже смотрятся системные папки и PATH, разве нет? в подтверждение своих слов приведу что показывает тотал коммандер когда студийные дллки лежат в папке и когда не лежат:
(http://i1125.photobucket.com/albums/l592/kambala_decapitator/dlls_inside.png)(http://i1125.photobucket.com/albums/l592/kambala_decapitator/nodlls.png) Верес, ты так и не сказал какой битности vcredist у тебя стоит. Название: Re: 0xc000007b при запуске под виндой Отправлено: Bepec от Февраль 03, 2013, 19:44 Да, ты прав.
x64. Установил x86 - запускаться начала нормально и без твоих dll :) Название: Re: 0xc000007b при запуске под виндой Отправлено: kambala от Февраль 04, 2013, 12:59 значит пока что результаты таковы: с моими дллками всё работает, с установленным vcredist x64 не работает, с vcredist x86 — работает. правильно?
хотелось бы чтобы кто-то еще проверил/посмотрел в чём дело. Название: Re: 0xc000007b при запуске под виндой Отправлено: Igors от Февраль 04, 2013, 13:34 WinXP 64, стоит SP2 и MSVC 2008. Просто так вякает нет dll, добавил Ваши - пошло
Название: Re: 0xc000007b при запуске под виндой Отправлено: Bepec от Февраль 04, 2013, 15:47 Всё правильно. 64 сглатывает и выдаёт собственно эту ошибку. Подстановка других dll даёт ошибку не найдена точка входа - всё чин по чину :)
|