VS2005开发MFC为什么在别的电脑上无法运行?

SuperMiner 2007-01-19 11:21:17
编译好的程序在装有只在VS2005的电脑上可以正常运行,在其他机子上就说“配置不正确,重新安装可能会纠正该问题”。我到网上搜过了,找到了一些办法,什么从动态链接改成静态连接呀,拷贝dll文件到目标电脑上呀,都试遍了,还是不行,最后我崩溃了,不得不在VC6上重新把程序做了一遍。从此我对VC++2005非常的悲观,觉得它在VS2005里简直就是一个摆设,至少MFC是这样的。我认识的好几个人都劝我把VS2005删掉,用2003。我想请教一下各位大虾,究竟有没有什么办法彻底解决这个问题?否则还有什么人敢用VS2005作C++开发呀?
...全文
5761 50 打赏 收藏 转发到动态 举报
写回复
用AI写文章
50 条回复
切换为时间正序
请发表友善的回复…
发表回复
njxxdx 2010-12-20
  • 打赏
  • 举报
回复
动态库
FrightingGuo 2010-12-17
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 zengkun100 的回复:]
最简单的解决办法就是在目标计算机上安装VC2005重新分发包叫做vcredist_x86.exe,不过要提醒你的是,这个分发包必须和你用来编写程序的VC2005版本一致。因为VC2005 express版,VC2005,和VC2005+SP1这三个VC2005的开发环境分别有三个对应版本的vcredist_x86.exe

还有一种办法就是静态链接运行时的各种库,包括MFC库,VC运行时库……
[/Quote]

哦,不是,发错了,是40楼 同学 说的是对的~~~
FrightingGuo 2010-12-17
  • 打赏
  • 举报
回复
[Quote=引用 39 楼 sleepynow 的回复:]
吧动态库改成静态库
[/Quote]
就是这样子的,谢谢~~,俺也遇见了这样的问题,已经解决了,thanks~~~
xuegao007 2009-01-21
  • 打赏
  • 举报
回复
我也碰到了.
allmyheart 2008-10-28
  • 打赏
  • 举报
回复
标记一下,以后再看。
pass86 2007-07-23
  • 打赏
  • 举报
回复
静态链接?
wavestudio 2007-07-23
  • 打赏
  • 举报
回复
把mfc改成静态连接的就可以了,我前几天也碰到过,确定是生成的程序比较大,呵呵
wangjingtaokkkkk 2007-07-19
  • 打赏
  • 举报
回复
depend一下,把所有的dll都考出来就可以了
FinalHacker 2007-07-19
  • 打赏
  • 举报
回复
这个问题我也遇到多次了,后来知道是缺少vc运行时库的缘故,需要安装vcredist_x86.exe,它在你的安装目录内,如果相关的dll和程序一起发布的话,还需要*.manifest文件。
zengkun100 2007-07-18
  • 打赏
  • 举报
回复
最简单的解决办法就是在目标计算机上安装VC2005重新分发包叫做vcredist_x86.exe,不过要提醒你的是,这个分发包必须和你用来编写程序的VC2005版本一致。因为VC2005 express版,VC2005,和VC2005+SP1这三个VC2005的开发环境分别有三个对应版本的vcredist_x86.exe

还有一种办法就是静态链接运行时的各种库,包括MFC库,VC运行时库

最提倡的办法是用VC2005制作安装包,这种办法只能用于VC2005而不能用于VC2005 express版

这个问题我前阵子也遇到过,用了我半天的时间才解决。楼主不要沮丧,任何问题都有解决的办法。多用用google和msdn肯定能搞定的

wish!
yangb2014# 2007-07-18
  • 打赏
  • 举报
回复
老问题,
firebolt2002 2007-07-17
  • 打赏
  • 举报
回复
不好意思,少说了一点,还要把共享库对应的manifest文件也一起带上。
sleepynow 2007-07-17
  • 打赏
  • 举报
回复
吧动态库改成静态库
firebolt2002 2007-07-16
  • 打赏
  • 举报
回复
没那么复杂吧,发布程序最基本的就是要把程序的依赖库包含在你的发布程序中,通过发布程序将依赖库复制到目标机器的相应目录中,这个和用什么开发工具好像没什么关系吧。VS2005生成的程序和VS2003、VS6差不多,只是VS2005连接共享库需要通过manifest文件来定位共享库的位置和版本,这个在VS2003的时候就有了,只是VS2003生成的程序不是严格按照这个方式连接共享库的,VS2005生成的程序基本上都会产生一个相应的manifest文件,你也可以通过VS2005的清单工具选择嵌入清单到应用程序中,不过在FAT32文件系统中可能会出现一些问题,你只要在清单工具中选择支持FAT32选择就可以了,发布程序到目标机器的时候先用depends工具察看一下应用程序的依赖管理,然后将特有的库文件(比如 mfc80u.dll msvcr80.dll)和 应用程序打包在同一目录中拷贝到目标机器中就可以运行了。
Kevin2Emma 2007-07-12
  • 打赏
  • 举报
回复
嗯,很常见的问题
bygreencn 2007-07-12
  • 打赏
  • 举报
回复
实在不行,就搞静态编译 ,没个不行的
BirdWang 2007-07-12
  • 打赏
  • 举报
回复
我也深受其害。在已解决帖中搜到一个说可能跟 SP1 有关。把SP1卸了,现在果然可以在其他机器上运行了。我估计你的问题跟我的一样。试试吧。 Good Luck!
zjh222 2007-05-04
  • 打赏
  • 举报
回复
如果有单独的VC++2005就好了,我只有C++,用Vs2005不装.Net framework还真不行呢??/
yaotong 2007-05-03
  • 打赏
  • 举报
回复
/MT
VC8很好使的,不懂不要胡说,
swordkm 2007-05-03
  • 打赏
  • 举报
回复
缺少动态链接库
加载更多回复(30)

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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