Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
ВнизПодключение новой DLL работающей программой. Найти похожие ветки
← →
Nk (2004-04-29 12:12) [0]Уважаемые Мастер,помогите pls, задача такая программа тестирует помехоустойчивые кодеки,написанные различными авторами и оформленными в виде Dll. К содержанию Dll можно предъявить любые требования, например, чтобы в ней содержались процедуры: procedure Coder(InFileName,OutFileName:string); procedure DeCoder(InFileName,OutFileName:string). Нужно, чтобы пользователь тестирующей программы мог самостоятельно (без доступа к исходникам)
добавить к ней новую Dll. Тестирующая прога должна увидеть новую библиотеку и уметь использовать ее функции. Заранее спасибо за любые дельные советы и рекомендации.
← →
Goida © (2004-04-29 12:20) [1]что-то такое:
LoadLibrary(string): handle;
← →
panov © (2004-04-29 12:26) [2]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
B8toB7: function(aSrc: String):String;
B7toB8: function(aSrc: String):String;
var
Form1: TForm1;
hLib: THandle;
implementation
{$R *.dfm}
procedure UnloadLib;
begin
FreeLibrary(hLib);
hLib := 0;
end;
procedure LoadLib;
begin
if hLib<>0 then Exit;
hLib := LoadLibrary("Test2.dll");
if (hLib=0) then
begin
raise Exception.Create("Error ");
Exit;
end;
@B8toB7 := GetProcAddress(hLib,"B8toB7");
@B7toB8 := GetProcAddress(hLib,"B7toB8");
end;
initialization
hLib := 0;
end.
← →
evvcom © (2004-04-29 13:32) [3]Т.е. речь идет, я так понимаю, о плагинах.
Сейчас наиболее модным способом решения сей задачи является использование COM-технологии. Об этом много информации.
Но есть и более древний, как мне кажется, способ. DLL-плугин экспортирует обязательный набор функций, который извещает вызывающую программу о функциях, реализованных в плагине, возможно типах и др. Реализовать можно по-разному. Единственное о чем нужно помнить - это не использовать типы данных и вызовы, характерные только для Delphi. Это не означает, что нельзя использовать собственные структуры, можно, но они не должны быть специфичны для Delphi. Ну и соответственно не использовать Дельфовый менеджер памяти.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.031 c