VS下写的VC能不能选择运行库的版本

cc_net 2010-06-07 10:36:54
用VS2010,把别人用VC6写的一个console程序改成了DLL

但是却依赖了MSVCR100D.DLL,但是运行的机器上大多还没装VC10的运行库。能不能在VS2010下开发的VC程序,使用老版本的运行库?XP自带VC运行库吗?是什么版本?

我看老程序没有依赖MSVCR,请问能否去掉这个依赖

谢谢
...全文
266 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmxmx 2010-06-11
  • 打赏
  • 举报
回复
虽然LZ使用了静态链接/MT搞定了,

但是/MT参数不是万能的,有时候程序只能使用/MD,这种情况在使用第三方库时经常碰到……

例如使用OpenSSl的lib时,就要求项目必须使用/MD参数……
lmxmx 2010-06-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cc_net 的回复:]
/MT多线程应用程序
/MD多线程DLL

恩,作用我知道了

不过看描述,还不是太明白,什么叫多线程引用程序和DLL,还有多线程是指什么?DLL支持多线程调用?
[/Quote]

/MD多线程引用DLL:是指这个DLL是多线程安全的,可以在被多线程程序调用而不必对线程间操作进行同步
cc_net 2010-06-08
  • 打赏
  • 举报
回复
顶下子
cc_net 2010-06-07
  • 打赏
  • 举报
回复
/MT多线程应用程序
/MD多线程DLL

恩,作用我知道了

不过看描述,还不是太明白,什么叫多线程引用程序和DLL,还有多线程是指什么?DLL支持多线程调用?
悟迟 2010-06-07
  • 打赏
  • 举报
回复
MT就是说生成的可执行文件可以在没有运行库的机器上运行
选MT的结果是生成的可执行文件可以在没有运行库的机器上运行
静态链接的多线程库的目标代码也最终被编译在应用程序的二进制文件中
cc_net 2010-06-07
  • 打赏
  • 举报
回复
MT就是说生成的可执行文件可以在没有运行库的机器上运行,如果是用MD则生成的可执行文件必需VC运行库——msvcrt.dll msvcrXX.dll等,其中XX代表运行库版本。

哈哈,解决了。没怎么用VC不熟悉,果然不行
cc_net 2010-06-07
  • 打赏
  • 举报
回复
第一次改写VC DLL的,是给C#用的

c#能不能直接使用lib

那岂不是用什么版本的VS开发,就是什么版本的VC运行库?其实用到的函数也是老库就有的。
VS2008以后C#就能选框架的版本。。。


lmxmx 2010-06-07
  • 打赏
  • 举报
回复
好像没见过自己改变运行时库版本的

LZ可以试试静态链接

16,470

社区成员

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

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

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