又遇到debug和release版本表现不同的奇葩问题

vs2008件了个win32 C++工程,用了这些库ogre174,opencv,artag,artag是一个使用c语言写的静态库,增强现实用的,这个静态库是用vc6.0写的,刚开始是这样来做的:忽略libc.lib库,编译的时候遇到一个问题,然后自己定义一个

extern "C" { FILE _iob[3] = {__iob_func()[0], __iob_func()[1], __iob_func()[2]}; }


问题貌似就解决了,但是release运行出错,调试运行release,提示freetype库初始化失败,用到字体的地方主要是那个mTrayMgr,托盘管理器,把和这个相关的东西注释,


调试运行release版本没有问题,但是直接运行release报内存读错误,直接运行和调试运行debug都正常,郁闷了吧,都是这个artag这个用vc6.0  c语言写的静态库搞的鬼


然后我就试着,对每个cpp文件设置他们的:属性  ---  c/c++  ----- 代码生成,里面的运行时库,选择:多线程(/MT),这样再从新编译然后就没有问题了,

这样设置就不需要extern "C" { FILE _iob[3] = {__iob_func()[0], __iob_func()[1], __iob_func()[2]}; }这一句了。但还是忽略libc.lib。


看来涉及到这类问题的时候,根源还是这个运行时库的选择啊。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值