Chinaunix首页 | 论坛 | 博客
  • 博客访问: 625063
  • 博文数量: 116
  • 博客积分: 6078
  • 博客等级: 准将
  • 技术积分: 1214
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-23 10:09
文章分类

全部博文(116)

文章存档

2016年(1)

2015年(4)

2011年(2)

2010年(21)

2009年(88)

分类: C/C++

2009-07-31 17:37:53

文件:Solution1.rar
大小:6KB
下载:下载
现象:
a.exe调用b.dll中的 f(list& mylist);时
在a中可以取到值,但是在不用的时候调用mylist.clear();会引起本地堆不允许操作。
原因及解决办法:
在于从应用程序不能释放在dll 里申请的内存。故而只能在dll中去人工释放,而非由系统释放。
即加一个dll 接口,releaseList(list& mylist){mylist.clear;}
的这里只能有多少个申请的接口就要写多少个释放的接口,模板导不出来的。

另外在采用vs2008没打补丁的情况下,由a.exe调用b.dll中的 f(list& mylist);时,内存是申请不上的,或许是我的库冲突引起的,但这个部分是存在的
阅读(1015) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~