为什么我的应用程序不能使用x64版本的Windows Server 2008运行?

时间:2010-06-03 14:44:28

标签: c++ windows windows-server-2008 side-by-side

我有一个使用少数第三方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的所有演示程序都正常工作。任何提示?

1 个答案:

答案 0 :(得分:1)

它看起来不像是一个并排的错误。异常代码是STATUS_INVALID_PARAMETER,“将无效参数传递给服务或函数。”这没有用。您需要一个调试器,可能需要Windows调试符号。让它停止在第一次机会例外。