vc和bcb中的stl/boost版本

最初的想法是将vc和其他编译器写出来的东西可以二进制级别的复用,做成COM调用起来麻烦,而基本类型pod也不方便,就想统一一下不同编译器中的stl版本。

拿vc9和bcb6来说,因为stl版本不同,容器的大小和实现都不一样,如果dll的头文件中有stl的东西,生成的dll便不能通用。

因为bcb6中的stl是stlport,版本好像是4.5.于是找来了stlport从4.0到最新版的5.21,在vc9中都能够顺利通过,不过使用stlport中的bcbxxx.mak总是有错误,如果直接替换bcb中stlport文件夹,4.6以下的旧版本貌似是可行的,不过如果到在bcb中stlport上的stl/config/using等文件夹也替换为stlport中的对应文件夹,编译仍旧通不过,报一个std::bad_malloc未定义,找来原来BCB中自带的对应文件_new.h,相关代码一模一样,找不出问题出在哪里。

而bcb2010中的stl与vc9一样,都是dinkumware,不过版本也不一样。就想至少代码级别是可以通用的。

因为最近在用boost,便想至少在vc和bcb里代码得是可以复用的。很不幸的是bcb6中我试了1.33版本之后的boost没有一个版本可以编译,而vc支持良好,在vc9中用了一段时间的boost1.49,于是想在bcb2010中试试boost。因为bcb2010中自带的boost是1.39,而奇怪的是如果直接将本地的boost1.39包如bcb的路径,编译是通过不了的。所以暂时只能用其自带的boost。

将最近写的代码扔进bcb2010中编译,唯一编译不过的在于boost1.49中多了一个container文件夹,之前的代码中用到容器的地方都用了这个文件夹下的头文件,为了代码复用,现在的容器都改为了stl自带的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值