Почему мое приложение не запускается с использованием x64 версии Windows Server 2008? - PullRequest
0 голосов
/ 03 июня 2010

У меня есть приложение 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 Ответ

1 голос
/ 03 июня 2010

Это не похоже на параллельную ошибку. Код исключения: STATUS_INVALID_PARAMETER, «Недопустимый параметр был передан службе или функции». Это не помогает Вам понадобится отладчик, возможно, с символами отладки Windows. Сделайте остановку на исключении первого шанса.

...