用VS2010打包MFC程序,在其他电脑安装后双击exe文件,会报错0xc0000142,请问如何处理?

时间:2021-12-13 18:37:51
如题,使用VS2010写了一个MFC程序,设置了MFC静态编译、ATL静态链接、多线程(/MT)可以将程序正常打包,mfc中使用了teechart的插件,打包时将其属性设置为自注册,启动项目与目标项目的条件设置的一致,都用的.NET Framework 4.0,系统必备使用的是"从组件供应商的网站下载系统必备组件",打包过程中没有错误和警告,安装过程也很正常,但是安装后双击exe文件,会弹出对话框提示“应用程序无法正常启动(0xc0000142)。请单击‘确定’来关闭应用程序”。使用Depends查看,没发现有标红说缺失的dll,使用过两台电脑均出现这样的情况,请问是哪里出现问题了,应如何处理?

7 个解决方案

#1


逐一排除了,.NET和teechart重点考察了

#2


用windbg挂上看看调用栈。

#3


引用 1 楼 mengfeihong 的回复:
逐一排除了,.NET和teechart重点考察了

具体要怎么做去考察?有推荐使用的工具或者文献吗?谢谢~

#4


引用 3 楼 sunny0_0yao 的回复:
Quote: 引用 1 楼 mengfeihong 的回复:

逐一排除了,.NET和teechart重点考察了

具体要怎么做去考察?有推荐使用的工具或者文献吗?谢谢~

可以考虑在虚拟机里做一个实验环境,运行失败的话,分别手动安装这两个东西,看看哪个手动安装以后程序正常运行了,那么就是安装包没处理好哪个。

#5


我不大会用虚拟机,我在另外一台WIN7电脑上试了,卸载和安装teechart这个错误还是会出现,我把.NET4.0也打包进去,然后安装的时候装上,还是报错,都是这个错误提示。。

#6


引用 5 楼 sunny0_0yao 的回复:
我不大会用虚拟机,我在另外一台WIN7电脑上试了,卸载和安装teechart这个错误还是会出现,我把.NET4.0也打包进去,然后安装的时候装上,还是报错,都是这个错误提示。。

.NET4.0手动安装(不依靠你自制的安装包)试试。

#7


先试试本地能否正常启动?
如果可以,那么就把你本地编译出来的东西拷贝并替换到出问题的电脑上对应的目录下,
如果还是启动不了的话,就要查看你编译时需要的各种库,出问题的电脑上是不是都存在。

一般来讲,如果是在纯净的电脑上启动不了的,大多是因为缺少库文件。

#1


逐一排除了,.NET和teechart重点考察了

#2


用windbg挂上看看调用栈。

#3


引用 1 楼 mengfeihong 的回复:
逐一排除了,.NET和teechart重点考察了

具体要怎么做去考察?有推荐使用的工具或者文献吗?谢谢~

#4


引用 3 楼 sunny0_0yao 的回复:
Quote: 引用 1 楼 mengfeihong 的回复:

逐一排除了,.NET和teechart重点考察了

具体要怎么做去考察?有推荐使用的工具或者文献吗?谢谢~

可以考虑在虚拟机里做一个实验环境,运行失败的话,分别手动安装这两个东西,看看哪个手动安装以后程序正常运行了,那么就是安装包没处理好哪个。

#5


我不大会用虚拟机,我在另外一台WIN7电脑上试了,卸载和安装teechart这个错误还是会出现,我把.NET4.0也打包进去,然后安装的时候装上,还是报错,都是这个错误提示。。

#6


引用 5 楼 sunny0_0yao 的回复:
我不大会用虚拟机,我在另外一台WIN7电脑上试了,卸载和安装teechart这个错误还是会出现,我把.NET4.0也打包进去,然后安装的时候装上,还是报错,都是这个错误提示。。

.NET4.0手动安装(不依靠你自制的安装包)试试。

#7


先试试本地能否正常启动?
如果可以,那么就把你本地编译出来的东西拷贝并替换到出问题的电脑上对应的目录下,
如果还是启动不了的话,就要查看你编译时需要的各种库,出问题的电脑上是不是都存在。

一般来讲,如果是在纯净的电脑上启动不了的,大多是因为缺少库文件。