Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.24;
Скачать: CL | DM;

Вниз

Работа с динамическими DLL   Найти похожие ветки 

 
Vovik ©   (2002-06-13 12:24) [0]

Здравствуйте!!!
Из главной программы подключаю DLL:

procedure TForm1.N41Click(Sender: TObject);
var Hbar1: Thandle;
Foo1: procedure;
begin
Hbar1 := LoadLibrary("DLL\fastinfo.dll");
if Hbar1 >= 32 then { успешно }
begin
Foo1 := GetProcAddress(HBar1, "fastinfoShow");
Foo1;
end
else
MessageDlg("Ошибка: не могу найти DLL", mtError, [mbOk], 0);
end;

Подскажите,как передать в DLL некоторые переменные из главной программы.
Заранее спасибо.


 
Fiend ©   (2002-06-13 12:37) [1]

я от так делал:
type
TCompileReportScript = function (pCROSSReport: pointer; pReportScript: PChar; pReportStrings: pointer; fDebug: longbool): longbool;

var CompileReportScript: TCompileReportScript;
@CompileReportScript:= GetProcAddress(hCROSSReportCommonLibrary, "CompileReportScript");

затем вызываю:
CompileReportScript(fCROSSReport, PChar(fHTTPFields.Values["fReportScript"]), pointer(DWORD(fReportStrings)+StrLen(fReportStrings)), true);

всё работает ОКИ, тока не забудь к моему куску добавить загрузку библии


 
Vovik ©   (2002-06-13 12:52) [2]

Ты не мог бы скинуть кусок своего кода с вызовом DLL с параметрами, а то я чтото немного не понял как это делать.


 
Fiend ©   (2002-06-13 12:57) [3]

Да я ж вроде достаточно подробно описал, что ты не понял?
Последняя строка и есть вызов функции в библии, просто так длинно выглядит, потому что привожу типы. Посмотри внимательно.
Стучись в асю, если не поймёшь


 
Vovik ©   (2002-06-13 17:14) [4]

А можно ли сделать что-нть похожее:
В DLL:

var pCount:PInteger;

procedure SetPointers(pCnt:PInteger);
begin
pCount:=pCnt
end;

в главной программе:

var Count:Integer;
...
Foo2:=GetProcAddress("SetPointers");
Foo2(@Count);
...

Если можно , то как при этом объявлять процедуру в программе?
var Foo2: procedure - не работает.




Страницы: 1 вся ветка

Текущий архив: 2002.06.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
14-77577
MBo
2002-05-20 09:28
2002.06.24
Очередная несложная разминка для начинающих.


1-77474
Sour
2002-06-12 09:37
2002.06.24
Как принудительно убить чужое приложение, зная handle


14-77564
lipskiy
2002-05-17 18:10
2002.06.24
Набор тестеров кода в UBPFD


1-77332
chernoruk
2002-06-11 07:14
2002.06.24
Вид формы на разных мониторах


3-77255
Kurmanbek
2002-05-30 07:28
2002.06.24
Переименование таблицы в IBase