如何在C++动态库中释放调用动态库程序中生成的指针? 80

我在程序中定义了一个BYTE*的指针,并分配了内存,接着调用一个动态库中的函数,把这个指针传入动态库,但在动态库中,我只要一运行free(),想释放这个指针,就出现错误。... 我在程序中定义了一个BYTE*的指针,并分配了内存,接着调用一个动态库中的函数,把这个指针传入动态库,但在动态库中,我只要一运行free(),想释放这个指针,就出现错误。但如果这个函数不放在动态库,而是放在程序中就不会出错,请教高手,这是怎么中回事?难道动态库中不能释放不是在动态库中生成的指针?
试了gundaml的方法,不行。还有没有别的建议?
因为在DLL中我需要改变分配的内存区的大小,所以只有先释放,再重新申请,如果我不这样做,那么有什么办法可以解决在DLL中改变不是在DLL中分配的内存区的大小这个问题?
展开
 我来答
百度网友7204d61d45
2005-11-09
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
1、我的经验是:谁申请,谁释放。
2、如果一定要这么做,可以在你的“程序”中增加一个callback函数,让dll调用。
3、如果泄漏不大,也可以不释放,哈哈。
伙逐卉年木0v
2005-11-06 · 超过21用户采纳过TA的回答
知道答主
回答量:126
采纳率:0%
帮助的人:49.9万
展开全部
我用的是VC6,在DLL的Settings..->C/C++->Code Generation->Use run-time library,选成Debug Multithreaded DLL。如果是Release版,选成Multithreaded DLL
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2005-11-09
展开全部
我用的是VC6,在DLL的Settings..->C/C++->Code Generation->Use run-time library,选成Debug Multithreaded DLL。如果是Release版,选成Multithreaded DLL
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2005-11-16
展开全部
用GlobalAlloc分配内存,
用GlobalFree来释放就可以了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式