Программинг Форум для тем связанных с программированием
03.02.2011, 05:26
#281
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
госпади, что же это
заметьте, первое число всегда 0, хм
а если
Добавлено через 8 минут
я кажется понял
вот такой код в делфи работает правельно, но потом идет ошибка
delphi Код:
var
b:byte ;
i:integer ;
p:pointer ;
begin
i:=-1 ;
p:=@b;
integer ( p^) :=i;
messagebox( 0 , pchar ( inttohex ( b,2 ) ) , ' ' , 0 ) ; //показывает FF
//потом ошибка
end ;
Добавлено через 2 минуты
что значит?
[Warning] my_hook_dll.dpr(218): Combining signed and unsigned types - widened both operands
Добавлено через 2 минуты
нашел... ничего особенного...
Добавлено через 3 минуты
боже, ошибка внатуре кажется появляется при определенных пакетах
Добавлено через 1 минуту
как странно...
Добавлено через 11 минут
я нашел эту с*ку
ГОСПАДИ, ТО ЧТО В ЭТОМ ПАКЕТЕ, ОНО ДАЖЕ НЕ ВСТАВЛЯЕТСЯ
Добавлено через 31 секунду
это надо видеть, боже да что же это
__________________
Н а ч а л о .
Последний раз редактировалось supernewbie, 03.02.2011 в 05:26 .
Причина: Добавлено сообщение
03.02.2011, 05:26
#282
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
боже, что это за МОНСТР
__________________
Н а ч а л о .
03.02.2011, 06:20
#283
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
егорка, короче надо искать ошибки в моём коде)
Добавлено через 8 минут
или может это сервак обгавняканые пакеты шлет?
Добавлено через 34 минуты
да нет, бред всё это... убрал IntToHex, сделал
delphi Код:
procedure Proc;
var
i:integer ;
s,s1:string ;
j,k:integer ;
begin
try
s:='' ;
k:=FixLog.Add ( s) ;
FixLog.SaveToFile ( 'E:\FixLog.txt' ) ;
i:=0 ;
if PacketsFromServer.Count >0 then
begin
try
with TFullPacketServer( PacketsFromServer.Items [0 ]) do
begin
try
j:=3 ;
if id2<>-1 then inc ( j,6 ) ;
SetLength ( s,length ( s) +( length ( data) *3 ) +j) ;
except
MessageBox( 0 , 'Proc\Memory' , '' , 0 ) ;
end ;
try
//s1:=IntToHex(id,2);
s1:='23' ;
s[1 ]:=s1[1 ];
s[2 ]:=s1[2 ];
s[3 ]:=' ' ;
FixLog[k]:=s;
FixLog.SaveToFile ( 'E:\FixLog.txt' ) ;
if id2<>-1 then
begin
//s1:=IntToHex(id2,4);
s1:='4455' ;
s[4 ]:=s1[3 ];
s[5 ]:=s1[4 ];
s[6 ]:=' ' ;
s[7 ]:=s1[1 ];
s[8 ]:=s1[2 ];
s[9 ]:=' ' ;
FixLog[k]:=s;
FixLog.SaveToFile ( 'E:\FixLog.txt' ) ;
end ;
if Length ( data) >0 then
for i:=0 to length ( data) -1 do
begin
//s1:=inttohex(data[i],2);
s1:='12' ;
//FixLog.SaveToFile('E:\FixLog.txt');
if not FixCheck( s1) then MessageBox( 0 , 'FATAL ERROR' , '' , 0 ) ;
if ( id=$FE) and ( i>0 ) and not FixCheck( s1) then MessageBox( 0 , PChar ( s1) , '' , 0 ) ;
s[j+1 ]:=s1[1 ];
s[j+2 ]:=s1[2 ];
s[j+3 ]:=' ' ;
inc ( j,3 ) ;
FixLog[k]:=s;
FixLog.SaveToFile ( 'E:\FixLog.txt' ) ;
end ;
except
MessageBox( 0 , pchar ( 'Proc\create s; size:' +inttostr ( size) +'; i:' +inttostr ( i) +' data length:' +inttostr ( length ( data) ) ) , 'ERROR' , 0 ) ;
end ;
try
Writeln ( 'FromServer: size:' +inttostr ( size) +': ' +s) ;
except
MessageBox( 0 , 'Proc\Writeln' , 'ERROR' , 0 ) ;
end ;
PacketsFromServer.Delete ( 0 ) ;
end ;
except
MessageBox( 0 , 'Proc' , 'ERROR' , 0 ) ;
Writeln ( 'FromServer:ERROR' ) ;
PacketsFromServer.Delete ( 0 ) ;
end ;
end ;
except
MessageBox( 0 , 'Proc' , 'ERROR' , 0 ) ;
end ;
end ;
и всё равно криты, убрал вызов Proc - не критует, так что всё это бред и клиент жмёт память для моих строк или еще че-то, но то что ошибка из-за памяти это 100%
Добавлено через 3 минуты
Цитата:
Сообщение от
Yegor
supernewbie , определись на 100 процентов в каком участке кода выдает ошибку, ну не может л2 писать в твою память если ты ее резервируешь, пусть даже методами делфи.
что значит резервировать память? может я чего-то не делаю? короче всё, 100% он жмёт память, т.к. щас выдало эксцепт в этом коде
delphi Код:
try
[b][i]SetLength( data1,curpck.size ) ;[/i][/b]
for i:=0 to curpck.size -1 do
begin
p:=Pointer ( cardinal ( curpck.data ) +i) ;
b:=Byte ( p^) ;
data1[i]:=b;
end ;
PacketsFromServer.Add ( TFullPacketServer.create ( curpck,data1) ) ;
except
MessageBox( 0 , 'ParsingFromServer' , 'ERROR' , 0 ) ;
end ;
как вообще нужно "резервировать" память?
__________________
Н а ч а л о .
Последний раз редактировалось supernewbie, 03.02.2011 в 06:20 .
Причина: Добавлено сообщение
03.02.2011, 12:02
#284
Пользователь
Регистрация: 04.11.2009
Сообщений: 44
Сказал Спасибо: 57
Имеет 3 спасибок в 2 сообщенях
03.02.2011, 20:16
#285
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
короче не знаю, переделал все типы в указатели, указатели на массив байтов, указатель на стринг, выделяю им память GetMem, освобождаю FreeMem, всё равно тоже самое
Добавлено через 2 минуты
эм, еще и указатель на TList делать. грейт
__________________
Н а ч а л о .
Последний раз редактировалось supernewbie, 03.02.2011 в 20:16 .
Причина: Добавлено сообщение
03.02.2011, 20:18
#286
Рыцарь
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
кстати.
PacketsFromServer.Add(TFullPacketServer.create(cur pck,data1));
глупа.
в конструктор -
PacketsFromServer.add(self);
и в деструктор
PacketsFromServer.remove(self);
__________________
L2Ext - project closed.
03.02.2011, 20:21
#287
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
да что за гавно тут происходит
Добавлено через 32 секунды
delphi Код:
data1:parrayofbyte;
parrayofbyte=^arrayofbyte;
arrayofbyte=array of byte ;
try
GetMem ( data1,150000000 ) ;
SetLength ( data1^,curpck.size ) ;
except
MessageBox( 0 , 'ParsingFromServer0' , 'ERROR' , 0 ) ;
end ;
ну ЧТО тут не так бл*ть
__________________
Н а ч а л о .
Последний раз редактировалось supernewbie, 03.02.2011 в 20:21 .
Причина: Добавлено сообщение
03.02.2011, 20:22
#288
Рыцарь
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
может с длинной пакета бага какая?
__________________
Шожиделать.. ботить хочется..
03.02.2011, 20:23
#289
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
хм, врятли... т.к. щас вообще эксцепты на пустом месте пошли
__________________
Н а ч а л о .
03.02.2011, 20:23
#290
Рыцарь
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
Цитата:
Сообщение от
supernewbie
* GetMem(data1,150000000);
* SetLength(data1^,curpck.size);
точно хз, но помоему бред
__________________
Шожиделать.. ботить хочется..
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 10:03 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!