Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1083158933
GIL
2004-04-28 17:28
2004.05.16
Создание модальной mDi-формы


1-1083298835
DataTime
2004-04-30 08:20
2004.05.16
Как отнять от ДатыВремя допустим несколько часов


14-1082960189
Andryk
2004-04-26 10:16
2004.05.16
Поговрим о символах вот тут недавно прочитал про символ США


6-1079982504
3APA3A
2004-03-22 22:08
2004.05.16
Несколько подключений к одному IP:Port...


3-1082110270
Alex_Pol
2004-04-16 14:11
2004.05.16
Запуск сервера InterBase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский