程序打包后在没装VC的机子上运行不了

dkbrain 2010-04-11 04:30:38
首先: 我用的打包工具是Installshield 12,在别的机子(未装VC)上安装没有问题,但是运行安装后的程序时就会出现“应用程序正常初始化(0xc0150002)失败”,但是在有安装VC的几台机子上安装后运行都没有任何问题;
其次: 我的应用程序是用VS2005开发的,其中有几个dll,都是采用 “使用共享MFC DLL”的动态链接库,应用程序本身也是采用动态链接MFC的
第三: 我在别的机子上有去安装.net 3.0以及vcredist_x86.exe,但是结果都没什么改变;
第四: 我的程序有使用DBGrid,msFlexGrid等控件,但我在打包时有包括这些控件,而且在装有VC的机子上运行没啥问题。


因为我程序中有个dll是别的厂家提供的,没办法更改的,必须使用“使用共享MFC DLL”,没办法使用静态链接方法,请给位给我看看到底啥原因导致我的程序在别的机子上运行不了的。
...全文
357 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
波粒 二象性 2010-09-06
  • 打赏
  • 举报
回复
记号,
SuperSparkGuo 2010-04-12
  • 打赏
  • 举报
回复
vcredist_x86.exe有几种的
我上次也遇到类似的这种问题
装了 vcredist_x86.exe Win32 Cabinet Self-Extractor 这个问题没有解决
装了 vcredist_x86.exe Microsoft Visual C++ 2008 Redistributable Setup 这个问题就解决了
好像是因为DLL加载问题, 需要个 manifest文件
qjipa 2010-04-12
  • 打赏
  • 举报
回复
这样的问题,一般是写的程序有问题,如果可以的话,检查一下代码吧,因为我以前也试过类似的问题

代码如果没问题的话,无论静态还是动态编译,都不会出问题的
cagates 2010-04-12
  • 打赏
  • 举报
回复
用静态编译,release文件夹里的,
wilson_hz 2010-04-12
  • 打赏
  • 举报
回复
那具体我就不清楚了,帮顶。
dkbrain 2010-04-12
  • 打赏
  • 举报
回复
我是有用到DBGrid/msFlexGrid等控件,但是我在打包的时候有加入这几个控件的;
而且在setup文件包中也有找到这些控件的ocx文件。


[Quote=引用 16 楼 wilson_hz 的回复:]
你的软件,是不是依赖什么东西?
我以前也遇到过这种类似的问题,程序中使用了一个串口控件,在有些电脑上能运行,有些电脑上不能。最后发现是少了一些ocx文件造成,希望能对你有帮助。
[/Quote]
wilson_hz 2010-04-12
  • 打赏
  • 举报
回复
你的软件,是不是依赖什么东西?
我以前也遇到过这种类似的问题,程序中使用了一个串口控件,在有些电脑上能运行,有些电脑上不能。最后发现是少了一些ocx文件造成,希望能对你有帮助。
dkbrain 2010-04-11
  • 打赏
  • 举报
回复
这位大牛的链接我又看,也按里面的做了,但是我的问题应该不是那文章里所说的情况

[Quote=引用 12 楼 laiyiling 的回复:]
自己加LOG,在InitIntance方法中加入TXT形式的LOG,然后看是在什么地方CRASH的!而且你也可以用虚拟机建议一个远程调试环境,都很方便查问题原因!

http://sr-thinking.javaeye.com/blog/629073
[/Quote]
dkbrain 2010-04-11
  • 打赏
  • 举报
回复
试过了啊,还是不行呐
[Quote=引用 13 楼 bingying19872008 的回复:]
静态环境编译就OK了.....
[/Quote]
bingying19872008 2010-04-11
  • 打赏
  • 举报
回复
静态环境编译就OK了.....
Kudeet 2010-04-11
  • 打赏
  • 举报
回复
自己加LOG,在InitIntance方法中加入TXT形式的LOG,然后看是在什么地方CRASH的!而且你也可以用虚拟机建议一个远程调试环境,都很方便查问题原因!

http://sr-thinking.javaeye.com/blog/629073
dkbrain 2010-04-11
  • 打赏
  • 举报
回复
下载啥运行环境的?
MFC运行环境?
MFC运行环境具体的是什么东西?
.net 3.0我已经安装了。


[Quote=引用 10 楼 tang_xiao_bin 的回复:]
下载个运行环境。
[/Quote]
TANG_XIAO_BIN 2010-04-11
  • 打赏
  • 举报
回复
下载个运行环境。
dkbrain 2010-04-11
  • 打赏
  • 举报
回复
楼上的方法编译的时候就出错了。
我打包后的安装程序是有包括mfc80.dll mdc80u.dll mfcm80.dll mfcm80u.dll msvcm80.dll msvcp80.dll msvcr80.dll 等等的一堆的MFC动态链接库。
各位牛人给看看是什么问题。

[Quote=引用 8 楼 arsaisy 的回复:]
"项目"---"属性",打开项目属性页,点击"配置属性"---"C/C++"---"代码生成"
将此页面右边的"运行时库"由默认的"多线程 DLL(/MD)"改为"多线程(/MT)"或"多线程调试(/MTD)"
[/Quote]
就是这个怪兽 2010-04-11
  • 打赏
  • 举报
回复
"项目"---"属性",打开项目属性页,点击"配置属性"---"C/C++"---"代码生成"
将此页面右边的"运行时库"由默认的"多线程 DLL(/MD)"改为"多线程(/MT)"或"多线程调试(/MTD)"
dkbrain 2010-04-11
  • 打赏
  • 举报
回复
在未装MFC的机子上能跑DEBUG版本的?
RELEASE版本已经对环境要求很低了

[Quote=引用 6 楼 lsupper 的回复:]
引用 5 楼 dkbrain 的回复:

打包后那些dll是有一起打包进去的,而且程序运行时也没提示说缺少什么dll文件的;
问题是一运行安装后的程序,立刻就弹出“应用程序正常初始化(0xc0150002)失败”
我也随之一起崩溃了

你弄个DEBUG版本的发布包来,也别打包,就一起放一个文件夹下,手动regsvr什么的~~ 看看能跑不?并且用TRACE打印出来一些过程信息,看看大概哪……
[/Quote]
lsupper 2010-04-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dkbrain 的回复:]

打包后那些dll是有一起打包进去的,而且程序运行时也没提示说缺少什么dll文件的;
问题是一运行安装后的程序,立刻就弹出“应用程序正常初始化(0xc0150002)失败”
我也随之一起崩溃了
[/Quote]
你弄个DEBUG版本的发布包来,也别打包,就一起放一个文件夹下,手动regsvr什么的~~ 看看能跑不?并且用TRACE打印出来一些过程信息,看看大概哪里错~~~~
dkbrain 2010-04-11
  • 打赏
  • 举报
回复
打包后那些dll是有一起打包进去的,而且程序运行时也没提示说缺少什么dll文件的;
问题是一运行安装后的程序,立刻就弹出“应用程序正常初始化(0xc0150002)失败”
我也随之一起崩溃了
lsupper 2010-04-11
  • 打赏
  • 举报
回复
用了别人的DLL也可以静态编译的吧~~~ 静态编译是把环境降到最低~~~~~~~
jingzhongrong 2010-04-11
  • 打赏
  • 举报
回复
用depends看看需要什么dll,复制到程序目录下。
加载更多回复(2)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧