技术文章

当前页面: 首页 >技术文章 >如何在CVI里释放DLL函数开辟的内存?

如何在CVI里释放DLL函数开辟的内存?

--[db:子标题]

供稿:中国工控网 2016/7/13 15:02:55

0 人气:7

  • 关键词: DLL CVI
  • 摘要:在CVI里,您调用DLL的一个开辟内存的函数,它返回一个指向这段内存空间的指针。CVI然后调用free函数来回收这段内存。这是否可行?

如何在CVI里释放DLL函数开辟的内存?

这有两种可能情况:

如果这个DLL是用CVI创建的,那么开辟的内存可以由CVI来释放,这个没有一点问题。

如果这个DLL是由外部编译器,您必须使用外部编译器的内存管理方法(比如他们的malloc函数)他们的malloc函数返回的指针是不能被CVI版本的free函数来调用的。必须调用这个外部编译器的free函数。

1、在进行动态内存分配的时候,只使用CVI来创建DLL,是用CVI版本的malloc和free。

2、在DLL里创建另外一个"free"函数,由它来调用外部编译器的free函数来释放内存。 比如:
void my_free(void *ptr)
{free(ptr); // this call to free is to the external compiler's free function.}
[/ol] my_free 可以在CVI中调用来释放DLL开辟的任何内存。


审核编辑(王雪)
更多内容请访问 中国工控网(http://www.gongkong.com)

手机扫描二维码分享本页

工控网APP下载安装

工控速派APP下载安装

 

我来评价

评价:
一般

相关文章

换一换
  • 暂无记录!

历史浏览记录

    登录注册可查看更多历史记录