23.09.2008, 08:35
|
#186
|
Пользователь
Регистрация: 10.10.2007
Сообщений: 39
Сказал Спасибо: 0
Имеет 7 спасибок в 5 сообщенях
|
Цитата:
Сообщение от NLObP
Подскажите, как устранить здесь утечку памяти?
delphi Код:
const
{The name of the debug info support L2phx}
StartLocalServer = 'На %d зарегистрирован локальный сервер';
FailedLocalServer = 'Неудалось зарегистрировать локальный сервер на порте %d'+ #13#10+ 'Возможно этот порт занят другим приложением';
CreateNewConnect = 'Создано новое соединение - %d';
ConnectBreak = 'Соединение %d разорвано';
procedure TL2PacketHackMain.Log(var msg: TMessage);
var
p : Pchar;
begin
move(Pointer(MSG.lParam)^,P,SizeOf(PChar));
ListBox3.Lines.Add(p);
end;
procedure sendMSG (msg: string);
var
LogMsg: pchar;
begin
LogMsg:=PChar(msg);
SendMessage(L2PacketHackMain.Handle, WM_ListBox3_Log, 0, integer(@LogMsg));
end;
сам вызов происходит здесь
delphi Код:
msg:=format(StartLocalServer,[ntohs(LPortConst)]);
sendMSG (msg);
если в сообщении нет чисел, то все нормально, как только есть, то fastmm4 сообщает о небольшой утеке памяти
типа такого:
Код:
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):
13 - 20 bytes: AnsiString x 2
21 - 36 bytes: AnsiString x 2
37 - 52 bytes: AnsiString x 1
53 - 68 bytes: AnsiString x 2
85 - 100 bytes: AnsiString x 1
И ещё. Правильно ли закрываю хэндл потока?
Добавлено через 3 минуты
Я не все перенес из твоих исходников?
|
я так делаю
Код:
procedure TL2PacketHackMain.WmFinished(var msg: TMessage);
var h1:integer;
begin
h1:=msg.WParam; // хендел отработаного потока
CloseHandle(h1);
end;
|
|
|