Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];




Вниз

DLL вызывает процедуру в основной проге... 


Dimedrol   (2001-12-22 13:30) [0]

Коллеги, не подскажете как можно из ДЛЛ запустить процедуру главной программы (допустим WriteHello;), дождаться окончания ее работы и затем продолжить свою работу... ?



brkut   (2001-12-22 17:01) [1]

Zdrastvuite, izvinite za latin,

mozhno peredat v dll proceduru adres tvojei funkciji:

DLL

type
UserProc = procedure;
procedure StartUserProc(Proc: UserProc);
begin
showmessage("DLL stuff");
Proc;
showmessage("Again DLL stuff");
end;
exports
StartUserProc;
begin
end.


Main

type
UserProc = procedure;

procedure StartUserProc(proc: UserProc); StdCall;external "Project1.dll";
procedure Test;
begin
showmessage("Application stuff");
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
StartUserProc(@Test);
end;


Vsio kazhetsia rabotajet, no est bug - Test procedura pochemu to zapuskajetsa dva raza. Pochemu neznaju, no chotel bi uznat ...
any ideas ?

Eshchio navernoje mozhno zapustyt application proceduru vizivaja WM.
No, pochemu to SendMessage(LoadLibrary("my.dll"), MY_MESSAGE, wparam, lparam) nesrabotalo :(



Dimedrol   (2001-12-22 19:42) [2]

Решение конечно интересное, но у меня будет 1 проблема...
Я пишу плагины (вот из-за чего все это ;-))
Так что я заранее не могу знать какая ДЛЛ-ка будет вызывать
процедуру в основной программе, так что строка
procedure StartUserProc(proc: UserProc); StdCall;external "Project1.dll";

не сработает, т.к. этого -> "Project1.dll" не будет...



Иван Шихалев   (2001-12-22 19:54) [3]

Ё-моё. А callback чем не устраивает? Благо в Pascal есть такая замечательная вещь как процедурные типы.



brkut   (2001-12-23 13:19) [4]

Nu v takom sluchae, vsio zavisit ot konkretnovo prilozhenija.
Developeri tebe dolzhni dat SDK, o tam uzhe vsio budet jasno ...

nu koroche tebe nado
MainApp handle, togda ti smozhesh ejo kontrolerovat cherez windows messages ... (mozhesh posmotret kak eto delajetsia v Winampe)

udachi,
Ainis




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.014 c
14-28530          Sir Alex              2001-11-12 19:37  2002.01.10  
клиент DMFC & Sources & CVS


1-28456           Serg5                 2001-12-21 19:36  2002.01.10  
Знатоки, подскажите. плиз, как запретить ввод любых значений в StringGrid, кроме первой колонки. Т.е. остальные попросту у меня предназначенны для отображения результата.


3-28434           Dreamer               2001-12-08 14:31  2002.01.10  
Есть процедура инициированная DataSource как ее вызвать


3-28430           Alexandr              2001-12-07 08:58  2002.01.10  
Базы данных и модемные соединения


1-28499           nevidimie             2001-12-23 13:44  2002.01.10  
Обработка Memo