c++项目属性



/

运行时库:

c/c++ run time library(standard c/c++)-->microsoft c/c++ runtime library-->windows api: kernel32.dll, user32.dll, gdi32.dll

microsoft c/c++ runtime library(CRT): 
libcmt.lib MT
libcmtd.lib MTD
msvcrt.lib+msvcr80.dll MD
msvcrtd.lib+msvcr90d.dll MDd

http://www.666pc.com/pro/pro/c/2010/0527/54190.html

如果编译选项是mt,mtd, 则生成的exe里包含了runtime lib, 在别的windows机器上也可以跑,不论是否有安装visual studio.

如果编译选项是md,mdd,则生成的exe需要包含msvcm90.dll,msvcr90.dll,msvcp90.dll,Microsoft.VC90.CRT.manifest.在目录Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT。


dll调用动态运行时库,exe调用动态运行时库,可以实现exe中释放dll中开辟的空间
dll调用静态运行时库,exe调用动态运行时库,失败,弹出中断框,windows已在exe中触发一个断点。其原因可能是堆被损坏,这也说明exe中或者它所加载的任何dll中有bug,
dll调用静态运行时库,exe调用静态运行时库,失败,弹出中断框,windows已在exe中触发一个断点。其原因可能是堆被损坏,这也说明exe中或者它所加载的任何dll中有bug,

原因:使用动态运行时库,内部采用同一个堆。静态运行时库分别有自己的堆。

http://dearymz.blog.163.com/blog/static/205657420096675044722/

解决方法:dll内部实现开辟空间和释放空间的接口函数。 多项目使用统一编译现选项。

/

mfc的使用:使用标准的windows库

使用静态mfc库,使用动态mfc库的区别:

应用根目录是否要包含D:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.MFC的文件

/

//




转: http://blog.csdn.net/zozoiiiiiiii/article/details/7714166

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值