Приложение больше не работает - есть идеи - PullRequest
0 голосов
/ 08 января 2009

У меня нет идей относительно того, почему мое приложение внезапно перестало работать - возможно, коллективный разум сообщества SO может помочь ...
Справочная информация:
У меня есть большое приложение, которое работало до недавнего времени. Теперь, когда я пытаюсь запустить его, я получаю сообщение об ошибке «Не удалось правильно инициализировать приложение (0xc0000005)»
Это происходит за до того, как приложение перейдет на _tmain(). Это происходит как в релизных, так и в отладочных сборках. Я попытался очистить и восстановить проекты и перезагрузил компьютер.

В стеке вызовов отображаются только записи для kernel32.dll и ntdll.dll
Окно вывода показывает:

First-chance exception at 0x00532c13 in a.exe: 0xC0000005: Access violation reading location 0xabababdb.
First-chance exception at 0x7c964ed1 in a.exe: 0xC0000005: Access violation.
Unhandled exception at 0x7c964ed1 in a.exe: 0xC0000005: Access violation.

Есть идеи?

Edit:
Ладно - обнаружил проблему - это было DLL связано
мое приложение использует общие dll a.dll и b.dll (и другие)
a.dll почти не меняется ( и использует b.dll )
Сегодня утром b.dll был изменен другим разработчиком, а a.dll не был перестроен.

Depends.exe не показывал пропавших dll, однако a.dll больше не работает из-за изменения b.dll

Ответы [ 5 ]

2 голосов
/ 08 января 2009

Эта ссылка описывает три проблемы как возможные причины:

  • Предотвращение выполнения данных
  • Обновление драйвера или системы
  • Неисправный баран

подробности здесь: http://www.updatexp.com/0xC0000005.html

сообщите нам, если найдете причину

1 голос
/ 08 января 2009

Возможно, вы использовали пакет SysInternals для проверки того, что происходит? Это поможет вам точно определить любой сбой, например, если он обращается к файлу, DLL или записи в реестре и доступ запрещен.

Ваша программа работает нормально, если вы устанавливаете ее в другом месте? (другой компьютер) Это может помочь изолировать проблему.

- Вы можете проверить журнал событий (приложение, система и т. Д.), Чтобы узнать, не регистрируется ли что-либо о проблеме.

- Другое дело ... Поскольку вы обновили Tortoise, возможно, он использует DLL, которую также использует ваше приложение. Вы должны проверить, изменились ли какие-либо версии DLL. Вы можете удалить эту новую версию черепахи. Или более радикально, попробуйте восстановить реестр. (http://support.microsoft.com/kb/322756) Или если вы используете Ghost / Acronis, восстановите более ранний образ вашей ОС.

Наконец, я бы порекомендовал постараться быть очень конкретным, чтобы выяснить, что не так. Я упомянул некоторые радикальные меры по исправлению проблемы, но, надеюсь, вы можете конкретно (то есть DLL вер. X вызывает проблему) сузить ее. В противном случае клиент или пользователь вашего приложения будет вонять так же.

1 голос
/ 08 января 2009

Может быть, обновление Windows перепутано с системой.

1 голос
/ 08 января 2009

Вероятно, для приложения требуется некоторый файл .dll, но он не найден или доступ к нему запрещен.

Используете ли вы какие-либо библиотеки DLL или, может быть, какую-нибудь библиотеку времени выполнения любого рода?

1 голос
/ 08 января 2009

Проверить разрешения?

...