C#交互过程中内存释放的方法
C#交互过程中内存释放的方法
C#进行平台调用时总共有三种内存释放方法:
1.CoTaskMemFree释放非托管内存
当非托管函数采用COM的内存分配方法CoTaskMemAlloc来分配内存,应该使用该方法来释放内存,该方法也是.net默认的对非托管内存的内存释放方法。
2.delete方法
在C++的非托管函数中用new方法来分配内存是要用该方法来释放内存,释放内存的托管函数要在非托管的程序集中定义。在托管代码中定义非托管释放函数的托管定义,进行平台调用来释放非托管内存。
3.free方法
在C代码中使用malloc方法分配内存时,要在非托管代码中编写释放内存的函数,在托管代码中进行平台调用