请问下面这个函数什么地方内存泄漏了?
- Delphi(Pascal) code
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);试试。