OPCMem

OPC程序开发内存管理说明

出售OPCToolkit

MSN:zhan826@https://www.360docs.net/doc/1e9130666.html,

QQ:10167223

E-Mail: zhan826@https://www.360docs.net/doc/1e9130666.html,

在OPC服务器里有3种需要分配和管理的内存类型:局部内存、作为“out”参数返回给客户端程序的全局内存和BSTR内存。我们必须正确分配内存和释放内存,需要注意的是:在很多情况下,调用错误的释放某个特定内存块的函数并不产生易见的错误,但是因为没有释放内存而产生内存泄露,随着时间的累加,而最终系统崩溃。

1、局部内存

局部内存在一个函数内部使用,除此之外,只要指向它们的指针不传递给外部的任务或者DLL也能在一个对象内部分配。这种类型的内存能被分配和释放使用以下2种技术。

Malloc/free:这个在C语言里使用。

New/delete:推荐的方式。如果我们要分配一个数据可以使用new这种方式,一定要记得使用“delete []”语句释放内存。

虽然这两种工作技术都可以工作,但是你不能分配用一种方法分配一块内存块,用另外一种方法释放内存。

2、全局内存

全局变量是由被调用的方法分配然后以“out”参数的方式传递给调

用者(除了BSTR),内存由调用者释放。也有两种技术来管理这种类型。

CoTaskMemAlloc/CoTaskMemFree: 比较容易的方法。

CoGetMalloc:比较有效率的方法。

这两种方法可以交换使用,也就是说用CoTaskMemAlloc分配内存,可以CoGetMalloc来释放内存。

3、字符内存

字符内存用BSTRs。用SysString…类型的函数分配内存,用SysFreeString 释放内存。如果客户端释放从服务器返回的BSTR的内存,一定是使用SysFreeString.

相关主题
相关文档
最新文档