Я пытаюсь выяснить, почему мое приложение, написанное на VC 2008, дает сбой на голой Windows XP с c0000005. Он отлично работает на любой Windows Vista и 7. В XP он вылетал без дополнительной информации. Ниже приведены подробности и результат нескольких дней моих головных болей, устранение одной причины за другой. Вот подробности:
У меня Win7 Ultimate с XP Mode с iexplore 6 и, по-видимому, без каких-либо патчей.
Я устанавливаю свою программу и ничего больше, так как предполагается, что она предназначена для установки и запуска без дополнительных пакетов.
Мое приложение скомпилировано во время выполнения VC2008 (с использованием параметра / MT, а не переключателя компилятора / MD)
Я использую встроенный firebird, которому нужны библиотеки VC2005 (отредактировано, я писал ранее VC2008), поэтому я помещаю их в рабочий каталог своего приложения.
когда я устанавливаю VC ++ 2008 на этот компьютер с XP Mode, он больше не дает сбоев, поэтому отладка таким способом невозможна
Я сузил частоту появления этой ошибки до среды выполнения VC2005 - сразу после установки мое приложение перестает давать сбой. Но я не знаю, что может использовать его компоненты. При запуске релизной версии под VC2008 IDE ничего не показывает загруженные библиотеки vc2005 (странно, если я так говорю).
Зависимости компоновщика моего приложения перечисляют их (я добавил только первые два, остальные предоставлены VisualStudio): jpeg.lib, gdiplus.lib, kernel32.lib, user32.lib, gdi32.lib, winspool.lib, comdlg32.lib , advapi32.lib, shell32.lib, ole32.lib, oleaut32.lib, uuid.lib, odbc32.lib, odbccp32.lib, comctl32.lib,% (AdditionalDependencies)
Я также использую интерфейс IBPP firebird, который загружает их динамически, поэтому они присутствуют в каталоге моего приложения (им нужны файлы msvc? 80.dll): fbembed.dll, ib_util.dll, icudt30.dll, icuin30.dll, icuuc30.dll , msvcp80.dll, msvcr80.dll
Пожалуйста, посоветуйте, почему среда выполнения vc2005 может помочь моему приложению не дать сбой на голой Win XP. Или как я могу отладить его, не устанавливая vc 2008 на целевой машине. Начинаю винить компоненты windows xp. В конечном итоге я хочу, чтобы мое приложение не требовало никаких дополнительных пакетов, таких как VC2008 или 2005, особенно когда ни один компонент моего приложения не требует последнего.