请教如何发布vs2005+sp开发的程序

Empire 2010-04-22 05:00:19
我在VS2005+SP上开发的程序是基于静态mfc库的,编译好的release版不能在没有装vs2005的机子上运行。用其它工具检查了一下所依赖的动态库,新机子上什么都没缺;把vcredist_x86.exe所携带的dll文件都放在程序所在目录下还是不能运行;安装了vcredist_x86.exe后就能运行了。

现在的问题是我不能要求客户安装vcredist_x86.exe,更不能要求他们把所需要的dll文件分别copy到系统目录下。
哪位高手能解决这个问题?
...全文
199 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gamedragon 2010-04-23
  • 打赏
  • 举报
回复
把你用到的CRT和MFC库全部放到你程序目录下,manifest文件也要
Eleven 2010-04-23
  • 打赏
  • 举报
回复
做个安装包,把所需的dll和你的exe打包
Empire 2010-04-23
  • 打赏
  • 举报
回复
两个已经都是静态链接了,还是不行。
会不会是忽略了某些库的原因?vs2005中没有libc.lib,只能忽略;msvcrt.lib和libcmt.lib冲突,忽略了libcmt.lib之后会出现下面两个错误:
error LNK2001: unresolved external symbol ___wargv uafxcw.lib
error LNK2001: unresolved external symbol ___argc uafxcw.lib
忽略了msvcrt.lib之后就可以本机运行了,但在没装vs2005
的机子上不能运行,错误提示:“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”
Empire 2010-04-23
  • 打赏
  • 举报
回复
搞定了。原因是用到了一个自己写的非MFC的lib文件,这个lib文件中的Run-time没选择静态的。
sunlin7 2010-04-22
  • 打赏
  • 举报
回复
使用静态链接到MFC,CRuntime,注意,这两个都要静态链接。
尹成 2010-04-22
  • 打赏
  • 举报
回复
静态编译就足够了
康斯坦汀 2010-04-22
  • 打赏
  • 举报
回复
什么都没缺不代表能运行,检查一下所依赖DLL的版本吧,是否一致?
找到不同的话,做个安装程序就行了。
ljz888666555 2010-04-22
  • 打赏
  • 举报
回复
静态MFC应该可以了

16,472

社区成员

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

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

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