Delphi 2007 c библиотеками которые нужны для компила пакетхака. на других обычно критует или длл или пакетхак. кароче хз в чем трабла а так работает и развивается потихоньку
ИМХО в общем с менеджером памяти FastMM какая то замарочка,
он идет начиная с Д2007.
вот может поможет, лог:
Код:
--------------------------------2009/1/26 14:38:36--------------------------------
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x7D4, and the stack trace (return addresses) leading to this error is:
C12993 [System][@FreeMem]
C64B39 [C:\Work\l2phx.3.4.1.81\Source\helper.dpr][helper][OnLoad][128]
55E338 [phxPlugins.pas][phxPlugins][phxPlugins.TPlugin.LoadPlugin][188]
572E99 [main.pas][main][main.TL2PacketHackMain.clbPluginsListClickCheck][3750]
46F9C7 [Controls.pas][Controls][Controls.TControl.DoMouseDown][5252]
46FA15 [Controls.pas][Controls][Controls.TControl.WMLButtonDown][5261]
4733E4 [Controls.pas][Controls][Controls.TWinControl.WndProc][7304]
44CB88 [StdCtrls.pas][StdCtrls][StdCtrls.TCustomListBox.WndProc][4790]
472B0B [Controls.pas][Controls][Controls.TWinControl.MainWndProc][7073]
42F91E [common\Classes.pas][Classes][Classes.StdWndProc][11583]
7E368734 [Unknown function at GetDC]
--------------------------------2009/1/26 14:39:05--------------------------------
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):
5 - 12 bytes: AnsiString x 1
Note: Memory leak detail is logged to a text file in the same folder as this application. To disable this memory leak check, undefine "EnableMemoryLeakReporting".
зы: поиграюсь с опциями FastMM, мб че получится
Добавлено через 4 часа 43 минуты
в общем разобрался,если юзать оригинальный файл FastMM4Options.inc и объявить дерективы ShareMM и AttemptToUseSharedMM в проекте то все работает норм. проверено Д7, думаю д2005 и 2006 норм должны компилится.
зы: юзал ФастММ 4.92 и 4.9
Последний раз редактировалось alexsl, 26.01.2009 в 20:35.
Причина: Добавлено сообщение
library mylib;
{$define ShareMM}{$define AttemptToUseSharedMM}{$define RELEASE}// для совместимости с релизом пакетхака, при дебуге можно закоментироватьuses
FastMM4,
SysUtils,
Windows
.....
Начал попытки переписки скриптов в плагины, появились несколько вопросов
1.TReadDEx,TReadSEx и т.п при чтении не смещают index на количество прочтенных байт как в скрипте, так и должно быть?
2.как работает TDataPckToStrPck строка получается hex? или как?
и кто знает как отлаживать в в седьмой делфи, у меня никак не получилось(, аттачу ПХ и он отлаживать сразу начинает, даж плагин не включить!
p.s хорошо бы для образца каконибуть исходник плагина, или описание работы процедур и функций)
1.TReadDEx,TReadSEx и т.п при чтении не смещают index на количество прочтенных байт как в скрипте, так и должно быть?
угу, поскольку в качестве параметра может быть не только переменная но и просто число в плагине нельзя реализовать это как в скрипте.
Цитата:
Сообщение от AD!
2.как работает TDataPckToStrPck строка получается hex? или как?
преобразует пакет из просто последовательности байт в памяти в строку, которая по сути та же последовательность байт, но с ней часто удобнее работать, hex тут не при чем...
Цитата:
Сообщение от AD!
и кто знает как отлаживать в в седьмой делфи, у меня никак не получилось(, аттачу ПХ и он отлаживать сразу начинает, даж плагин не включить!
ну после атача просто нажимаешь F9, в пакетхаке подключаешь плагин и вуаля - можно останавливать бряки в плагине.
Только надо чтобы дельфя плагин компилила сразу в папку плагинов пакетхака, иначе она не поймет что тот плагин который ты включил тот же самый что ты отлаживаеш..
Цитата:
Сообщение от AD!
p.s хорошо бы для образца каконибуть исходник плагина, или описание работы процедур и функций)
в SVN лежит два исходника плагинов - plugin_demo и plugin_demo2
__________________
Я здесь практически не появляюсь!, Skype - ikskor
Не мог разобраться с реализацией таймера плагине соорудил следующую конструкцию, вроде работает, но правильно ли? не будет затупов при долгой работе?
также прописываются и другие события)
delphi Код:
......
type
aaa = class(TObject)publicprocedure CheckTime(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
end;
var
FormMain : TForm;
CheckTimer: TTimer;
Msg : TMemo;
...........
.............
function Create_FormMain : TForm;
...........
.......
Result := TForm.Create(nil);
TRY
.......
Result.OnClose := aaa.Create.FormClose;
........
end;
...........
............
//чтобы форма не закрываласьprocedure aaa.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caNone;
end;
//событие таймераprocedure aaa.CheckTime(Sender: TObject);
begin
msg.Lines.Add('test');
end;
procedure OnLoad; stdcall;
begin
FormMain:=Create_FormMain;
CheckTimer:=TTimer.Create(Application);
CheckTimer.OnTimer:=aaa.Create.CheckTime;
CheckTimer.interval:=2000; //время задержки
CheckTimer.enabled:=false;
end;
.........
для того чтобы плагины и программа юзали один менаджер памяти, иначе нельзя бы было передавать стринги между плагином и программой и другие динамические массивы...
__________________
Я здесь практически не появляюсь!, Skype - ikskor