P
plenilune168
Unregistered / Unconfirmed
GUEST, unregistred user!
我在用 OleVariant 变量作 Midas 的远程调用函数时,用 MemProof 检测发现系统关闭后有 OEL SysString 资源没有释放。
发现是把普通字符串值赋给 OleVariant 变量时,系统自动通过调用API函数 SysAllocStringLen 动态分配内存把字符串类型转为 WideString 所占用的内存没有释放。
我用了以下多种方法都无法释放掉内存
v:=Null
v:=UnAssigned
VarClear(v)
本来想尝试用 API 函数 SysFreeString 释放,但是不知道怎么写,而且好象是字符串赋给OleVariant时,被自动转换成WideString中间过程所产生的内存,不知道怎么释放。
----------------------------------------------------------------------
重新建了一个新工程,只定义了一个 OleVariant 变量,发现也会出现内存泄漏问题
var v:OleVariant;
begin
v:='123456';
v:=Null;
//没有作用,无法释放
v:=UnAssigned;
//没有作用,无法释放
VarClear(v);
//没有作用,无法释放
end;
各位有谁知道怎么弄
发现是把普通字符串值赋给 OleVariant 变量时,系统自动通过调用API函数 SysAllocStringLen 动态分配内存把字符串类型转为 WideString 所占用的内存没有释放。
我用了以下多种方法都无法释放掉内存
v:=Null
v:=UnAssigned
VarClear(v)
本来想尝试用 API 函数 SysFreeString 释放,但是不知道怎么写,而且好象是字符串赋给OleVariant时,被自动转换成WideString中间过程所产生的内存,不知道怎么释放。
----------------------------------------------------------------------
重新建了一个新工程,只定义了一个 OleVariant 变量,发现也会出现内存泄漏问题
var v:OleVariant;
begin
v:='123456';
v:=Null;
//没有作用,无法释放
v:=UnAssigned;
//没有作用,无法释放
VarClear(v);
//没有作用,无法释放
end;
各位有谁知道怎么弄