
如何在C++动态库中释放调用动态库程序中生成的指针? 80
我在程序中定义了一个BYTE*的指针,并分配了内存,接着调用一个动态库中的函数,把这个指针传入动态库,但在动态库中,我只要一运行free(),想释放这个指针,就出现错误。...
我在程序中定义了一个BYTE*的指针,并分配了内存,接着调用一个动态库中的函数,把这个指针传入动态库,但在动态库中,我只要一运行free(),想释放这个指针,就出现错误。但如果这个函数不放在动态库,而是放在程序中就不会出错,请教高手,这是怎么中回事?难道动态库中不能释放不是在动态库中生成的指针?
试了gundaml的方法,不行。还有没有别的建议?
因为在DLL中我需要改变分配的内存区的大小,所以只有先释放,再重新申请,如果我不这样做,那么有什么办法可以解决在DLL中改变不是在DLL中分配的内存区的大小这个问题? 展开
试了gundaml的方法,不行。还有没有别的建议?
因为在DLL中我需要改变分配的内存区的大小,所以只有先释放,再重新申请,如果我不这样做,那么有什么办法可以解决在DLL中改变不是在DLL中分配的内存区的大小这个问题? 展开
展开全部
1、我的经验是:谁申请,谁释放。
2、如果一定要这么做,可以在你的“程序”中增加一个callback函数,让dll调用。
3、如果泄漏不大,也可以不释放,哈哈。
2、如果一定要这么做,可以在你的“程序”中增加一个callback函数,让dll调用。
3、如果泄漏不大,也可以不释放,哈哈。
展开全部
我用的是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来释放就可以了.
用GlobalFree来释放就可以了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询