特
特尔斐
Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用MemProof时遇到一个问题:
在释放一个只有字符串资源,没有任何执行代码的资源DLL时,总是会有Kind为Error的项目,其Item显示为:"Attempt to free unexisting resource"。试图释放不存在的资源???
可我只是调用了FreeLibray函数啊。
主要是SysInit.pas中的以下两个函数的问题:
procedure ExitThreadTLS;
var
p: Pointer;
begin
if @TlsLast = nil then
Exit;
if TlsIndex <> -1 then begin
p := TlsGetValue(TlsIndex);
if p <> nil then
LocalFree(p);
end;
end;
procedure ExitProcessTLS;
begin
if @TlsLast = nil then
Exit;
ExitThreadTLS;
if TlsIndex <> -1 then
TlsFree(TlsIndex);
end;
对于这种现象,哪位高手能解释一下吗?不胜感激!
在释放一个只有字符串资源,没有任何执行代码的资源DLL时,总是会有Kind为Error的项目,其Item显示为:"Attempt to free unexisting resource"。试图释放不存在的资源???
可我只是调用了FreeLibray函数啊。
主要是SysInit.pas中的以下两个函数的问题:
procedure ExitThreadTLS;
var
p: Pointer;
begin
if @TlsLast = nil then
Exit;
if TlsIndex <> -1 then begin
p := TlsGetValue(TlsIndex);
if p <> nil then
LocalFree(p);
end;
end;
procedure ExitProcessTLS;
begin
if @TlsLast = nil then
Exit;
ExitThreadTLS;
if TlsIndex <> -1 then
TlsFree(TlsIndex);
end;
对于这种现象,哪位高手能解释一下吗?不胜感激!