请教上面这个函数什么地方内存泄漏了
请问下面这个函数什么地方内存泄漏了?
我在一个线程里调用这个函数,结果导致程序的错误页面不断增加,把测试机的内存全部耗完了,不知道是这个函数里的什么地方导致的,请大家帮我看看,谢谢
------解决方案--------------------
CloseToolhelp32Snapshot
------解决方案--------------------
function ProcedureIsExists(AppName:string):Boolean;stdcall;//加上这个试试。
还有就是检查下调用是否有死循环,及哪些对象要释放。说明一下。有几个函数我也不知道什么意思,不对莫怪哈。
------解决方案--------------------
在退出这个函数前加上一个CloseHandle(ssHandl);试试。
function ProcedureIsExists(AppName:string):Boolean; //判断一个程序是否已经运行
var
lppe: TProcessEntry32;
ssHandle: THandle;
AppFound,findqq: Boolean;
Wnd: HWND;
begin
Result := False;
ssHandle := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
lppe.dwSize := SizeOf(lppe);
AppFound := Process32First(sshandle, lppe);
while AppFound do
begin
//其中lppe.szExefile就是程序名**********************************************
if UpperCase(ExtractFileName(lppe.szExeFile))=UpperCase(AppName) then
begin
Result := True;
Exit;
end;
AppFound := Process32Next(ssHandle,lppe);
end;
end;
我在一个线程里调用这个函数,结果导致程序的错误页面不断增加,把测试机的内存全部耗完了,不知道是这个函数里的什么地方导致的,请大家帮我看看,谢谢
------解决方案--------------------
CloseToolhelp32Snapshot
------解决方案--------------------
function ProcedureIsExists(AppName:string):Boolean;stdcall;//加上这个试试。
还有就是检查下调用是否有死循环,及哪些对象要释放。说明一下。有几个函数我也不知道什么意思,不对莫怪哈。
------解决方案--------------------
在退出这个函数前加上一个CloseHandle(ssHandl);试试。