0

我有一个 Win32 C++ 应用程序,它使用了一些安装在数百台客户机器上的第三方 DLL。我最近在 Windows XP、Windows Vista x64、Windows 7 x86 以及 Windows Server 2008 x86 上成功测试了 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 版本的行为类似。此外,来自第 3 方 Dll 的所有演示程序都可以正常工作。有什么提示吗?

4

1 回答 1

1

它看起来不像是并行错误。异常代码为 STATUS_INVALID_PARAMETER,“向服务或函数传递了无效参数。” 那没有帮助。您将需要一个调试器,可能带有 Windows 调试符号。让它在第一次机会异常时停止。

于 2010-06-03T15:13:49.890 回答