Форум: "Прочее";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];
ВнизPlug-in Найти похожие ветки
← →
de. (2007-11-15 10:49) [0]Уважаемые мастера!
Не могу придумать “фокус!
”…
Фокус заключается в следующем:
Есть несколько проектов которые используют формы справочников, для редактирования НД. Так форма справочника была написана в одном приложении, и помере написания других приложений она просто копировалась, из одной программы в другую. Получается что “одна и таже
” форма используется в различных приложениях.
Мной было принято написать плагин (dll
), и разместить в нем эту самую форму, чтобы ее могли вызывать различные приложения. Тут думаю понятно…
Так вот, помимо этого я бы хотел, добавить в этуdll
, функцию которая бы возвращала информацию о плагине, т.е. наименование, версию и т.д., примерно как в статьеDelphi World
(ИспользованиеDLL
в качествеPlug-in
).
Сама функция:// получение информации о плагине
function GetModuleInfo:TModuleInfo;stdcall;
var
Buffer:array [byte] of char;
begin
with Result do begin
Name:="Отображение цифровых данных";
Kind:=mkDigital;
if GetModuleFileName(hInstance,@Buffer,SizeOf(Buffer)-1)>0 then
Path:=ExtractFilePath(StrPas(Buffer));
end;
end;
// Функция возвращает информацию о модуле. В данном
// случае это цифровое отображение, путь и тип модуля.
Но эта функция посуте возвращает типTModuleInfo
, которого описания я не нашол, но осмелюсь предположить, что он имеет вид:
Type
TModuleInfo = record
Name: PChar;
...
Path: PChar;
End;
На этом о плагине все!
Теперь его вызов:
Итак:
В приложении мы объявляем экспортируемые процедуры и функции из библиотеки:type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
hDll: THandle;
…
GetModuleInfo: function: TModuleInfo; stdcall;
…
end;
Думаю понятно!
Так вот дальше:
В этом самом объявлении тоже используется типTModuleInfo
, следовательно, нам необходимо тоже объявить точно такой же тип как и вdll
“выше
”:Type
TModuleInfo = record
Name: PChar;
...
Path: PChar;
End;
Думаю расписал подробно, чтобы суть была понятна целиком, всмысле полностью ;-)
ВОПРОС:
Нельзя ли гденить вdll
, илипрограмме
, использовать технологию интерфейсов, дабы не объявлять каждый раз тип
TModule вdll
илипрограмме
…?
← →
oldman © (2007-11-15 11:35) [1]Если добавляешь в dll форму справочников, добавь туда и форму "About"
← →
de. (2007-11-15 11:37) [2]
> oldman © (15.11.07 11:35) [1]
Непонял...
← →
oldman © (2007-11-15 11:39) [3]
> de. (15.11.07 11:37) [2]
На форме справочников кнопка about, которая вызывает форму, на которой инфа о версии и т.д.
← →
de. (2007-11-15 11:45) [4]Не смысл такой, что будет сервер поекта, на котором будут вылаживатся обновления. Потом когда пользователь обновляется, при запуске программы например выдается сообщение мол так и так обноружина новая ворсия формы справочников ну или чтото вроде этого... :-)
Еще в принципе можно использовать указатель, но чем это может помочь еще не придумал... :-))Type
PModuleInfo = ^TModuleInfo;
TModuleInfo = record
Name: PChar;
...
Path: PChar;
End;
← →
Сергей М. © (2007-11-15 14:36) [5]
> вылаживатся
Велик и могучее русский языка !
> технологию интерфейсов
Накой ляд она сдалась ?
Реализуй свои плагины в bpl и собирай все свои проекты с ран-тайм пакетами - и всех делов)
← →
de. (2007-11-15 17:05) [6]
> Сергей М. © (15.11.07 14:36) [5]
> Велик и могучее русский языка !
Вылиживаться :-)
> Накой ляд она сдалась ?
А по каким пречинам bpl лутше.?
← →
oldman © (2007-11-15 17:07) [7]
> обноружина новая ворсия
Еще как велик и могуч...
Только не говори, что по клавишам промахнулся!
← →
Сергей М. © (2007-11-15 17:10) [8]
> по каким пречинам bpl лутше.?
http://delphi.about.com/od/objectpascalide/a/bpl_vs_dll.htm
← →
de. (2007-11-15 17:12) [9]
> oldman © (15.11.07 17:07) [7]
Печатаю аж пыть столбом стоит... ;-)
← →
clickmaker © (2007-11-15 17:14) [10]
> пыть столбом стоит
Бедная Пыть... )
← →
Сусл © (2007-11-16 00:36) [11]я за bpl - это реальная, нет! нереальная круть. как быдто без пакетов пишешь, так все прозрачно.
но вот, если протектить от взлома нужно программу, то вроде лучше без bpl (ну гуру так говорят, я то сам в этом слаб).
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.05 c