Форум: "Основная";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
ВнизКак написать плагин к своей программе? Найти похожие ветки
← →
Lefan (2004-08-28 14:08) [0]Приветсвую всех!!!
(незнаю в какую ветку с этим вопросом)
Вот написал софтину, докачка по ФТП... простенькая очень, просто качает, докачивает...
Хочется реализовать у нее поддержку плагинов.
Т.е. например плагин, который обраватывает заявки и сам ставит в закачку файл, другой например формирует список файлов...
Ды как сделать поддержку?
Хотелось бы увидеть исходники софтины, которая поддержует плагины, и исходник ее плагина...
Заранее благодареню.
С уважением Алексей
← →
SammIk © (2004-08-28 14:53) [1]Тут где-то есть про это статья, или в факе, что- то видел.
Да в нете много про это написано.
Исчите сударь, исчите
← →
OSokin © (2004-09-01 17:47) [2]Вот, немного переделал ту процедурку. Вот юнит:
unit PluginDLL;
interface
uses
Windows;
type
Tdllprocptr=function(wnd:hwnd;params:string):boolean;
var
dllprocptr:Tdllprocptr=nil;
LibInstance : HMODULE=0;
procedure PlugIn(wnd:hwnd;params,mainfuncname,filename:string);
implementation
procedure PlugIn(wnd:hwnd;params,mainfuncname,filename:string);
begin
// Проверим, загружена ли DLL
if LibInstance=0 then Begin
// Не загружена, попробуем загрузить
LibInstance := LoadLibrary(pchar(filename));
// Проверим, успешна ли загрузка (LibInstance=0 - неуспешно)
If LibInstance=0 then Begin
MessageBox(0,pchar("Ошибка загрузки библиотеки "+filename),pchar("Ошибка"),MB_ICONERROR and MB_OK);
exit;
end;
// Ищем функцию по ее имени (имя должно точно совпадать)
DllProcPtr := TDllProcPtr(GetProcAddress(LibInstance,pchar(mainfuncname)));
// Проверим, нашли ли (если нашли, то Assigned вернет true)
if not Assigned(DllProcPtr) then Begin
// Не нашли - выгружаем DLL из памяти
FreeLibrary(LibInstance);
LibInstance:=0;
//ShowMessage("Ошибка: функция "+mainprocname+" не найдена");
MessageBox(0,pchar("Ошибка: функция "+mainfuncname+" не найдена"),pchar("Ошибка"),MB_ICONERROR and MB_OK);
exit;
end;
// Непосредственно вызов функции
DllProcPtr(wnd,params);
// Выгрузка библиотеки
FreeLibrary(LibInstance);
LibInstance:=0;
end;
end;
end.
← →
Семен Сорокин © (2004-09-01 18:18) [3]http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/mastering/plugins.htm
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.031 c