我有一个使用少数第三方DLL的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版本的行为类似。此外,来自第三方Dll的所有演示程序都正常工作。任何提示?
答案 0 :(得分:1)
它看起来不像是一个并排的错误。异常代码是STATUS_INVALID_PARAMETER,“将无效参数传递给服务或函数。”这没有用。您需要一个调试器,可能需要Windows调试符号。让它停止在第一次机会例外。