Форум: "Основная";
Поиск по всему сайту: 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.037 c
1-28512           MaXimka               2001-12-21 17:12  2002.01.10  
Как узнать текущее разрешение экрана?


3-28407           urii                  2001-12-06 10:35  2002.01.10  
Вопрос по таблице Paradox


1-28508           Notify                2001-12-23 18:23  2002.01.10  
Проблема при развертывании формы на весь экран и одновременном блокировании изменений ее размеров.


6-28525           xnum                  2001-10-16 11:36  2002.01.10  
Скрипт на Дельфах... перспекива есть?


3-28406           vinni2000             2001-12-07 15:38  2002.01.10  
И чего это он ругаеться?