最近在一个项目中要调用别人的DLL,其中有个函数接口的参数是pchar类型的,因此我在调用的时候都是先分配内存,然后再传给它,
完了再释放,运行时没有问题的,但是我加了fastmm4以后,fastmm老是提示说我释放的指针是无效指针。最终没办法都改成了其它方式。
//举例:
var上面的代码就有问题,而下面的代码就没有问题
arr: p Char;
begin
GetMem(P,255);
try
GetSystemDirectory(p,255);
Result := p;
finally
Freemem(p);
end ;
end;
var
arr: array [0 ..MAX_PATH] of Char;
num: UINT;
begin
num := GetSystemDirectory(arr, MAX_PATH);
ShowMessage(arr);
end ;