(10.12.2011 16:22)Berserker Wrote: Quote:получить работоспособный пример-шаблон подключения длл к Эре
Есть пример для GNU C++ и для Delphi.
В Эре 1.9+ Tools\Era\SDK
Как создать хук с помощью этого инструмента я понял. Вот только в Делфи у меня не получается создать форму в длл. Вылетает игра. В книгах обычно примеры создания форм в длл с вызовом из приложения, также написанного на Делфи .
В билдере получается форму создавать, в Делфи - хуки)
А код для GNU С++ в билдере не компилится.
Есть длл с хуком для подмены файла карты. После генерации карты, до загрузки. Подменял под отладчиком - работает.
library Project1;
uses
SysUtils,
Era;
PROCEDURE Func(); STDCALL;
begin
asm
mov EAX,DWORD PTR DS:[$699538]
PUSHAD
end;
Form1.Show();
asm
POPAD
end;
end;
begin
Hook (@Func, HOOKTYPE_CALL, 5, POINTER($58C080));
end.
Создаю форму. Вызываю Form1.Show(); хоть в обработчике хука, хоть при загрузке длл - вылет.
Так тоже не получается:
VAR AOwner: TComponent;
Form1 := TForm1.Create(AOwner);
Form1.Show();
Хотя в любом случае, программа для обработки карты написана на С++, и подключать ее в Делфи - это извращение.