[MFC]如何让程序运行时不必手动安装VC运行库(VCredistX86)

lazysmile 2011-10-24 07:49:51
用MFC写的项目最近添加了一个功能,用到了一个框架,发布后有很多用户反映运行时出错-----应用程序初始化OXC0150002失败。需要安装vcredist_x86.exe才能运行。我想在程序编译时把需要的库静态编译进去,这样就不必额外安装了,请教一下在这种情况下编译时该如何做才能达到我想的效果?
...全文
461 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaopoy 2011-10-29
  • 打赏
  • 举报
回复
主程序大吗?可不可以把单独的主程序打个包,看一下程序具体用到了的MFC的DLL是哪几个?
Ginie 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oyljerry 的回复:]
工程属性中,选择Link MFC in static libraray,然后code generation中runtime library选择/MT模式,这样就不需要安装VC distribution的库了
[/Quote]

++++++++
lazysmile 2011-10-25
  • 打赏
  • 举报
回复
ACE的mfc版本DLL的编译我的参照了csdn博客的教程
ACE的MFC库的编译
lazysmile 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oyljerry 的回复:]
工程属性中,选择Link MFC in static libraray,然后code generation中runtime library选择/MT模式,这样就不需要安装VC distribution的库了
[/Quote]
在没集成新功能之前是这样编译的,所以没有问题。新增的功能模块是以DLL方式集成的,对DLL的编译的方式也是用了你说的这个编译选项,只是/MT变为了/MD,就是多线程的DLL模式。但是它却要依赖vcredist库~很奇怪
lazysmile 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xiaopoy 的回复:]
唔,MFC里面的应用太多了,不能一概而论。
总结性的,先要对自己用的MFC的部分有个了解,也即它用到了哪些其他部分,功能大概是什么样的,简单的实现是怎么样的。然后才能在用到时候,晓得会把什么静态链接进来。MFC静态链接体积大的主要部分是程序和线程以及窗口的类的代码,所以控制好这三个部分,静态链接也可以控制好体积的。
这就应该问你了,具体用到的哪个框架的?
[/Quote]
我是用了C++的ACE框架做了一个P2P模块,编译了一个它的MFC版本的DLL。集成到软件中后就出现这样的问题了。DLL的编译方式是对MFC静态链接,多线程模式。
alpha.5 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oyljerry 的回复:]

工程属性中,选择Link MFC in static libraray,然后code generation中runtime library选择/MT模式,这样就不需要安装VC distribution的库了
[/Quote]
++
oyljerry 2011-10-24
  • 打赏
  • 举报
回复
工程属性中,选择Link MFC in static libraray,然后code generation中runtime library选择/MT模式,这样就不需要安装VC distribution的库了
xiaopoy 2011-10-24
  • 打赏
  • 举报
回复
唔,MFC里面的应用太多了,不能一概而论。
总结性的,先要对自己用的MFC的部分有个了解,也即它用到了哪些其他部分,功能大概是什么样的,简单的实现是怎么样的。然后才能在用到时候,晓得会把什么静态链接进来。MFC静态链接体积大的主要部分是程序和线程以及窗口的类的代码,所以控制好这三个部分,静态链接也可以控制好体积的。
这就应该问你了,具体用到的哪个框架的?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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