http://topic.csdn.net/u/20090615/09/c2bdaee3-6542-4b3f-b100-ddd2040eddc1.html
两百分求解!
开发环境:vc2008,版本9.0 sp1
工程设置:Multi-threaded DLL (/MD);Use Unicode Character Set;Use MFC in a Static Library
使用了cximage,cximage的工程设置与主工程设置相同。cximage和主工程在一个solution中,以依赖工程的形式存在。
问题:编译出来后,按照上面的设置,应该只需要一个执行文件就可以执行,但是在一个干净的xp上却弹出下面得错误
“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。”。我用了下面提到的一个方法可以运行了,但是不是我想要的方式,
我的需求是:
我只是做的一个小程序,为了运行我的小程序,还要目标机安装一个vcredist_x86.exe的程序,我觉得有点不合适,因此我想寻求一种方法,是否只要拷贝几个合适的dll就能让我的程序运行起来?都需要哪些dll?
参考:
1,我在网上查了一些资料,说这个原因还是xp上没有安装合适的库文件,需要根据 myproject.exe.intermediate.manifest中的设置宝贝适当的dll过去,于是我查看了我的这个设置文件,如下:,但是拷贝了相关的这些dll到程序所在目录并不起作用。
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.30729.1' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.MFC' version='9.0.30729.1' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*' />
</dependentAssembly>
</dependency>
</assembly>
2,后来我又查到第二个方案,在目标xp上安装vcredist_x86.exe这个安装包,于是安装后程序能运行起来。