注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mie

 
 
 

日志

 
 

关于Windows的“由于应用程序配置不正确,应用程序未能启动”的问题  

2010-05-29 19:34:13|  分类: 定期查阅 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

问题描述:Release版本或者Debug版本的程序,提示“由于应用程序配置不正确,应用程序未能启动。”

分析与解决:

        这个问题本质上就是一个链接库的问题。

(1)对于Debug版本,一般是缺少了Debug版本的运行时库文件。

(2)对于Release版本(对于Debug版本也适用),又分两种情况:

        (a)MFC库。如果是动态链接MFC库,则可能是缺少了MFC运行时库文件。复制MFC运行时库文件到应用程序的目录,或者复制到系统system32目录,即可。如果是静态链接,基本上不会出现这类错误提示,所以,建议使用静态链接。虽然这样会导致编译出来的程序较大,但是,相比“动态链接的程序+MFC运行时库”的总大小来说,还是小一些的。

        (b)ATL库。这个和MFC库类似,也分为动态链接和静态链接。

        MFC库和ATL库的运行时库文件,一般在 “D:\Program Files\Microsoft Visual Studio 9.0\VC\redist”目录里面,也就是redist目录。一般情况下,32位系统使用x86里面的文件。

 

案例分析:

        一个console控制台程序,包含了<atlbase.h>文件,并使用了ATL函数。程序在大部分机器上运行正常,在少数机器上面运行,总是提示“由于应用程序配置不正确,应用程序未能启动”。

        当使用静态链接ATL库时,运行正常!

        导致此问题的根本原因在于,对于大部分Windows XP系统而言,system32目录都含有ATL.dll文件。但是,极少数机器却没有。这将导致,虽然程序中使用了较低版本的atl函数,我们却无法调用它们。——此问题仅限于极少数机器。对于大部分机器而言,只要存在atl.dll之类的文件,这个程序就能运行,此时,静态链接和动态链接ATL库是没有区别的。

       所以,为了兼容这种极个别的情况,如果程序中包含了altbase.h,就应该在安装包中包含atl.dll等文件,或者使用静态链接atl库。

 

By:zhanyonhu

 

  评论这张
 
阅读(1352)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016