У меня есть приложение 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.
Журнал событий содержит сообщение:
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 работают правильно. Намек?