Re: [cpp] 关于c++最近遇到的几个不得不提的问题
zhs007
sssxueren at gmail.com
Thu Mar 2 19:08:52 CST 2006
谢谢,我搜索了一下,没有找到这个文件:(,它是做什么的呢?
如果只是配置include目录的话,其实就和我说的不太一样了。
我想说的是二进制兼容的问题,即便是同一编译器编译,2个 模块使用不同版本的 stl
编译,最后如果发生垮模块的std::命名空间下的引用,譬如一个模块里面有个类里面有 std::vector,在另外一个模块里面继承它,运行起来都会报错。
如果有个项目,需要用到这2 个dll,而且都没有这2个 dll 的源码,虽然也可以做,但那就很痛苦了。
在06-3-2,wing fire <wing.fire at gmail.com> 写道:
>
> 连接两个模块是有问题。不过,如果只是解决你提到的stlport,倒是很简单:你维护两个配置文件就是了.
> \Local Settings\Application
> Data\Microsoft\VisualStudio\7.1\下的VCComponents.dat就是配置.你保存两个配置,一个用stlport,一个用msstl。再写一个脚本,用来切换就是了。
>
> 不过,用C++,基本上就只能用C子集跨模块。
>
> 在06-3-2,zhs007 <sssxueren at gmail.com> 写道:
> >
> > 一,二进制兼容性太差
> > 最近帮个朋友写点东西,他提供了几个lib,里面用到了stl,是 vc 自带的,我这边所有的库都是用 stlport编译的,如果要使用他的 lib
> > ,我所有的库需要重新编译不说,还有少量的接口,stlport 和 msstl 不兼容......
> > c++只有源码级别的兼容,太不方便了。这点比C都要差得太多了,所以一直到现在,我都在传递参数的时候,尽量的传 const char* ,而不是
> > std::string 。
> > 二,弱 link 的问题
> > 有个项目,大约 100 多个文件,维护起来很痛苦,所以我决定按功能,分成若干小 lib,最后 link 成 dll,这样
> > 可维护性更好一些。粗想下来什么问题都没有,但却就是这样简单的工作都会出问题:
> > 为了降低模块之间的耦合度,我使用了很多 factory ,这样就会有一系列 object 是弱 link
> > 的(增减修改object都不会对整体造成任何影响),而 lib 本身也是 弱 link 的,没有使用到的东西是不会 link
> > 到最终的目标文件中去的,于是,表面上看来编译链接都没问题,但实际运行起来就发现,怎么什么都是空的阿,调试了半个多小时,终于找到原因,超级郁闷的说!
> >
> > _______________________________________________
> > Cpp mailing list
> > Cpp at codingnow.com
> > http://codingnow.com/mailman/listinfo/cpp
> >
> >
>
> _______________________________________________
> Cpp mailing list
> Cpp at codingnow.com
> http://codingnow.com/mailman/listinfo/cpp
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://codingnow.com/pipermail/cpp/attachments/20060302/cb4c7409/attachment.html
More information about the Cpp
mailing list