当前位置: 代码迷 >> VC >> Win32程序在64位Win7上唯有进程却无界面
  详细解决方案

Win32程序在64位Win7上唯有进程却无界面

热度:9392   发布时间:2013-02-25 00:00:00.0
Win32程序在64位Win7上只有进程却无界面
被这个问题困扰了3天了。。。

我的软件在XP和Win7上以前一直都可以安装并运行正常,但3天前在客户的64位Win7上安装后,双击程序图标无法出现界面,但是任务管理器中有进程。我试过了用兼容模式安装和运行,以及调出Win7的超级管理员来运行,都不行,仍然没有界面出现。

奇怪的是我在我同事的一台装有64位win7的机器上测试一切都是正常的,界面窗口可以显示。为了让客户有同样的环境,我把他的win7 sp1都删了还是不行。在客户机器上可以发现如下错误日志:

Activation context generation failed for "C:\ScandSOFT_Business\CutCad.exe". Dependent Assembly Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053" could not be found. Please use sxstrace.exe for detailed diagnosis.

但是并不是每次都会有这样的错误日志生成。可以我查过客户机器,是可以找得到相应的C:\Windows\winsxs\x86_microsoft.vc80.debugmfc_1fc8b3b9a1e18e3b_8.0.50727.4053_none_e9832bc8fd3efed3文件夹的。不知为何日志里说找不到。。

而且我也不能确定界面出不来就一定和这个日志有关。。

另外,我在我应用程序的构造函数一开始加了一个afxmessagebox,但是在客户机器上运行时,居然连这个messagebox都没出现,可见程序是在进入应用程序构造函数前就被阻塞了。从而也不可能出现界面。可是有什么可以解决的方法?

我实在是想不出好的办法了。。各位如果能帮的话请帮帮我。。

------解决方案--------------------------------------------------------
试一试编译成静态库
------解决方案--------------------------------------------------------
debug和release模式side by side deployment有点区别。我曾经遇到过这样的情况:release版本可以运行,debug不行。后来用manifest viewer才发现debug C++ Run-time DLL version mismatch.
How to Debug 'The System cannot Execute the specified program' message
------解决方案--------------------------------------------------------
把工程编译环境改成x86,不要用anycpu,或者反过来
  相关解决方案