heapalloc? это освободить?
Добавлено через 2 минуты
че-то не похоже) так, щас сделаю по-нормальному, потому что вроде работает
Добавлено через 5 минут
delphi Код:
procedure ParsingFromServer(curpck:PNetworkPacket); stdcall;
var
p:pointer;
b:byte;
i:cardinal;
s,s1:string;
begin
VirtualAlloc(@s,150000,0,0);
VirtualAlloc(@s1,1500,0,0);
with curpck^ do
begin
s:=inttohex(ID,2)+' ';
if id2<>-1 then
begin
s1:=inttohex(ID2,4);
s:=s+s1[3]+s1[4]+' '+s1[1]+s1[2]+' ';
end;
for i:=0 to size-1 do
begin
p:=Pointer(cardinal(curpck.data)+i);
b:=Byte(p^);
s:=s+inttohex(b,2)+' ';
end;
writeln('FromServer:'+s);
end;
end;
критки, как правильно выделять память? 1 раз выделить? тогда как проверить что у строк не выделенна память?
Добавлено через 4 минуты
помогите, госпади, за что мне это((
Добавлено через 10 минут
эпик
2011.2.3 22:02:36
OS : Windows XP x64 5.2 (Build: 3790)
CPU : AuthenticAMD AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ @ 3017 MHz 4094MB RAM
Video : NVIDIA GeForce 9800 GT (9745)
PosCode : LS2(216) 47896:186808:-3486 2/1 [392]
Insufficient Memory.
Please check the Virtual Memory Option and avilable hard drive space.
You can check them by going to : Control Panel->System->Advanced->Performance->Settings->Advanced->Virtual memory.
History: FMallocWindows::Malloc <- Size 1081728 FArray <- FMallocWindows::Realloc <- 00000000 1081728 FArray <- FArray::Realloc <- 90144*12 <- ATerrainInfo::UpdateVertices <- ATerrainInfo::UpdateVTGroup <- ATerrainInfo::PostLoad <- UObject::ConditionalPostLoad <- (TerrainInfo 21_24.TerrainInfo0) <- PostLoadObjects <- UGameEngine::LoadMapThread::ActorLoading <- UGameEngine::LoadMapThread <- RunLoadMap <- MessagePump <- MainLoop
Добавлено через 50 секунд
ПАНИКА, ЧТО ДЕЛАТЬ ГОСПАДИ
Добавлено через 4 минуты
добавил в begin end.
VirtualAlloc(@s,150000,0,0);
VirtualAlloc(@s1,150000,0,0); и сделал s и s1 глобальными переменными
delphi Код:
procedure ParsingFromServer(curpck:PNetworkPacket); stdcall;
var
p:pointer;
b:byte;
i:cardinal;
begin
s:='';
with curpck^ do
begin
s:=inttohex(ID,2)+' ';
if id2<>-1 then
begin
s1:=inttohex(ID2,4);
s:=s+s1[3]+s1[4]+' '+s1[1]+s1[2]+' ';
end;
if size>0 then
for i:=0 to size-1 do
begin
p:=Pointer(cardinal(curpck.data)+i);
b:=Byte(p^);
s:=s+inttohex(b,2)+' ';
end;
writeln('FromServer:'+s);
end;
s:='';
end;
всё равно криты, но уже о том что ошибка в обработке какого-то пакета
Добавлено через 1 минуту
помогите
Добавлено через 5 минут
понял, крит будет через n-ое кол-во пакетов, 100%, и это странно