博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STL容器类型作为模块参数传递的问题 解决方案
阅读量:6804 次
发布时间:2019-06-26

本文共 441 字,大约阅读时间需要 1 分钟。

场景

跨模块调用,并且使用stl作为参数传递,使用不同的VS进行模块编译

调试

单步调试发现:传递的参数值在跨模块之后都是异常数据,并且一般是在迭代数据,访问容器的时候出错

补充

1.不同版本的VS中stl实现不一样,导致list、vector等内部数据结构不一样,这样在不同版本的模块中传递时,数据结构就会不正确

2.std::alloc的问题,也就是内部内存在不同的模块里面进行分配,并不是使用同一个内存池,当在一个模块内申请,在另一个模块释放的时候也会出问题(当不同的模块使用不同的运行时库就会

出现该问题)

解决办法1:所有的dll和exe使用同一个版本的编译器,并且动态链接到C运行时dll上 

解决方法2:传递结构体数组代替STL容器作为参数传递,并且不允许跨模块中使用STL,限制STL

在本模块中使用

     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1719471,如需转载请自行联系原作者
你可能感兴趣的文章
CEPH Cache Tiering
查看>>
Oracle 11g新特性之--Server Result Cache
查看>>
Oracle中的ORA-01548: active rollback segment '_SYSSMU1$' found
查看>>
AngularJs $anchorScroll、$controller、$document
查看>>
Microsoft资源
查看>>
WordPress 永久链接或固定链接设置技巧
查看>>
数据结构之线性表
查看>>
在PPT中插入FLASH遇到的系列问题
查看>>
XSS研究4-来自外部的XSS攻击的防范
查看>>
Spring知识点总结-1
查看>>
微软私有云分享(R2)21 BMC提升B格
查看>>
MDSF:如何使用GMF来做TOGAF建模工具
查看>>
Spring Security简介
查看>>
打造一流的研发中心
查看>>
MCollective架构篇3-Puppet插件的部署及测试
查看>>
配置GNS使用CRT连接
查看>>
Java:集合类性能分析
查看>>
cms无法登陆
查看>>
JavaScript中事件处理
查看>>
VSTO 向office文档中插入内容
查看>>