Форум: "Основная";
Текущий архив: 2002.06.24;
Скачать: [xml.tar.bz2];
ВнизРабота с динамическими 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c