Почему мое приложение не запускается с использованием x64 версии Windows Server 2008?
У меня есть приложение Win32 C++, использующее несколько сторонних библиотек DLL, которые установлены на нескольких сотнях клиентских компьютеров. Недавно я успешно протестировал x86-версию установки на Windows XP, Windows Vista x64, Windows 7 x86, а также Windows Server 2008 x86. Нет проблем. Установщик (nullsoft) устанавливает распространяемые файлы для VC 2005 и VC 2008, так как они требуются для разных используемых нами библиотек DLL.
Но в Windows Server 2008 x64 версии x86 и x64 отказываются запускаться. Когда я запускаю версию программы для x86, появляется диалог:
<myApp> has stopped Working.
EventLog содержит сообщение:
Faulting application myapp.exe, version 1.0.0.0, time stamp 0x4bcb37ca,
faulting module MSVCR80.dll, version 8.0.50727.4053, time stamp 0x4a594c79,
exception code 0xc000000d, fault offset 0x0001ce0b, process id 0x29c,
application start time 0x01cb0329976cfc68.
\ Windows \ winsxs содержит каталог
x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_d08d7da0442a985d
С помощью sxstrace (сначала трассировка, затем анализ) создается файл журнала длиной 3 байта, содержащий нечитаемые символы. Поведение версии x64 аналогично. Также все демо-программы от сторонних Dll работают правильно. Любой намек?
1 ответ
Это не похоже на параллельную ошибку. Код исключения: STATUS_INVALID_PARAMETER, "Недопустимый параметр был передан службе или функции". Это не помогает Вам понадобится отладчик, возможно, с символами отладки Windows. Остановите это на исключении первого шанса.