Как исправить "faulting module msvcr100.dll" - PullRequest
0 голосов
/ 04 февраля 2012

Я получаю очень странный сбой в клиентской системе для моего исполняемого файла C ++:

Faulting application Client.exe, version 0.0.0.0, faulting module msvcr100.dll, version 10.0.30319.1, fault address 0x0008d635.

Он отлично работает на клиенте Windows 7 и выше, чем на Windows Server 2003 R2, дажепосле установки среды выполнения Visual C ++.Первая строка Client.exe - это команда std::cout, так что я очень уверен, что ошибка не в выполнении, а в динамической загрузке библиотек DLL.К сожалению, одна из библиотек, на которую я ссылаюсь, является сторонней и не доступна со статической связью со средой выполнения, поэтому я не могу статически связать исполняемый файл.

Любые советы о том, как поступить с такой проблемой (а этот в частности)?

Ответы [ 3 ]

0 голосов
/ 04 февраля 2012

Что такое код исключения? Я не вижу, что сторонняя DLL является единственной причиной, иначе ОС показала бы ошибку, которая отсутствует в конкретной DLL.

Или эта сторонняя DLL загружается динамически (каким-то образом с использованием LoadLibrary), или это управляемая DLL?

Используйте Dependency Walker, посмотрите, отсутствует ли какая-либо DLL. Попробуйте выполнить трассировку (F7), используя сама зависит, и посмотрите выходные данные отладки в нижней панели Зависит.

0 голосов
/ 04 февраля 2012

WinDbg на самом деле указал на проблему. Просто это была глобальная переменная, которая не могла быть инициализирована из-за отсутствия файла на клиенте, и это был просто отчет об исключении.

0 голосов
/ 04 февраля 2012

Взгляните на эту ссылку:

http://forums.adobe.com/thread/851511

И рассмотрим 32-разрядные против 64-разрядных.

Наконец, выполните « зависит » (оно должно быть доступно во всех выпусках MSVisual Studio) для всех трех:

  • Ваш .exe

  • Ваша третья сторона .dll

  • Ваша среда выполнения msvc .dll

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