读书人

BCB 2009 如何用VC的标准STL

发布时间: 2012-06-03 16:59:40 作者: rapoo

BCB 2009 怎么用VC的标准STL
RT BCB 2009 怎么用VC的标准STL??

因为 BCB 2009的 sizeof(std::string) == 40

但是 标准VC的 sizeof(std::string) == 32

也就是说2个版本的std::string 在内存中是不一样的 我需要匹配一样

所以需要把 BCB2009的 STL 替换成 标准的VC的STL 怎么做啊???


哪个高手能否说下啊 感激不尽

[解决办法]
在写DLL所用的VC的版本的 STL 中,提取 其 std::string 内存布局,将其写成一个类,同时调整字节对齐,使其与 VC 写的DLL中的内存布局一致。然后,使用专用的头文件调用DLL就可以了。 

这不是一般的麻烦. VC换个版本编译,你又得重做一次。

写DLL,用 STL 做接口,就把通用性抛到一边去了,压根就没想给别的语言调用,就算同样是VC,不同的版本也可能不行的。更何况BCB。

[解决办法]

探讨

引用:
接口中用了 stl ,就指望二制面兼容了。
接口中的 std::string 成 char * 或 BSTR ,BCB VC 就可以相互通了。

你意思是DLL接口 不用std::string来传递?
呼呼 但是VC的DLL 我没源码 无法修改啊 所以必须要匹配

读书人网 >C++ Builder

热点推荐