Почему мое приложение не запускается с использованием 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. Остановите это на исключении первого шанса.

Другие вопросы по тегам