如何在Dll中分配内存,而在调用程序里释放

 我来答
聪明又聪敏丶熊猫2234
2017-04-03 · 超过202用户采纳过TA的回答
知道小有建树答主
回答量:404
采纳率:0%
帮助的人:169万
展开全部
声明:没有经我许可,不得转载此篇文章,侵权必究。

曾经在开发Dll时遇到过这样的问题:我在Dll中用new分配了一块内存,并向其中填好数据,然后把指针传给Dll调用者;在调用程序里,我能使用这个指针,并读取它里面的数据,但是在delete时,VS弹出一个“用户断点”错误提示框。也就是说不能在调用程序里delete由Dll里new出的指针。
那我怎么将大量数据传递给调用者呢?
有一次,在网上浏览关于MIDL的技术文章时,看到作者使用了CoTaskMemAlloc/CoTaskMemFree函数来分配/释放内存。我突然想试试它能否解决前述的问题。果然能行!
可是为什么呢?我查看了MSDN中CoTaskMemAlloc函数的描述,但没有找到答案~~但在一篇网络求助帖中我看到了类似问题和回答,下面将三个回答者的部分观点贴出来。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式