marconi |
Отправлено: 31.03.2004, 12:19 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 86
|
Как наиболее правильно установить новый компонент, например в нем есть файлы с расширением:dfm,bpi,dcr,dcu,hpp,obj,res
или другой:
dcu,hpp,obj,dcr
снова читал 2 раза и ничего не получается.
|
|
olegenty |
Отправлено: 31.03.2004, 12:38 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
либо ты не все файлы перечислил, либо никак.
для установки уже скомпилированного пакета нужен файл с расширением *.bpl
для компиляции и установки пакета, нужен файл *.bpk, а так же
либо *.obj, *.hpp — пакет соберётся на твоей машине, но без исходников
либо *.pas — пакет откомпилируется и соберётся на твоей машине из исходников
либо *.h, *.cpp — аналогично предыдущему
ну и всевозможные комбинации тоже возможны :-))
|
|
marconi |
Отправлено: 31.03.2004, 13:51 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 86
|
Вот сейчас ещё раз просмотрел в первом:
dfm,bpi,dcr,dcu,hpp,lib,obj,res.
Во втором компоненте меньше:
dcu,hpp,obj,dcr,pas.
Но pas. как бы в виде справки. Или я ????
|
|
olegenty |
Отправлено: 31.03.2004, 14:54 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
первый похоже не поставишь. нет *.bpl потому что, а второй — смотря что в *.pas
если в каком-то из *.pas есть функция Register, то с этого файла нужно создать *.bpk и откомпилировать.
|
|
marconi |
Отправлено: 31.03.2004, 15:19 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 86
|
Странно. Забыли положить, но в двух не может быть наверно . Это с диска. Компонент DynamicScinForm v5.35 написано что компонент позволяющий изменить вид формы.
Ну ладно спасибо на этом.
|
|
klen |
Отправлено: 01.04.2004, 00:26 |
|
Машинист паровоза
Группа: Участник
Сообщений: 239
|
Значить так мужики, не вешайте нос.
Возможно не все потеряно!!!!!
Для установки пакета (с компонентами и(или) редакторами компонент ) действительно нужен сам пакет, но ... что нам мешает его собрать самим.
Пакет при установке загружается как простая dll, на этом сходство кончается, далее в пакете IDE ищет функция Register которая регестрирует классы компонент и редакторов и еще некоторые служебные функции (например функции инициализации менеджера памяти, но ето так, между прочим) и вызывает их, тем самым инициализирует пакет и выставляет компоненты на палитру.
Таким образом если хоть в одном *.obj есть функция Register то пакет соберется нормальным пакетом с компонентами и при инсталяции подымет компоненты. Если такого объектника нет — извеняте бананев нема.
Такчто создвай новый пакет , смело добавляй в проект все объектники и пробуй его инсталировать, даю 90% что все получится. Навлядли забыли все положить, просто *.bpk не положили, потомучто он для всех версий билдера разный будет. Такое часто бывает.
Если так не получится, то тоже не беда, прийдется самому написать код который регестрирует классы компонент, у тебя получится чтото вроде:
(Здесь пример из моего файла)
CODE | namespace Klentoollib
#include "DataConverter.h"
#include "XMLStorage.h"
#include "XMLPropsStorage.h"
#include "StoredPropEditor.h"
{
void __fastcall PACKAGE Register()
{
try
{
TComponentClass classes[3] = { __classid(TDataConverter) ,
__classid(TXMLStorage) ,
__classid(TXMLPropsStorage)
};
RegisterComponents("Klen Tools", classes, 2 );
Designintf::RegisterComponentEditor(__classid(TXMLPropsStorage), __classid(TXMLPropsStorage_ComponentEitor));
}
catch (...)
{
MessageBox(NULL,"Error for KlenToolLib pakage registration." , "Klen Tool libr?ry v0.2 pakage." , MB_OK | MB_ICONERROR);
return ;
}
}
} |
Где классы для регистрации определены в хидерниках которые ты тоже имеешь. Если и так не получится (может не получится только в одном случае если линкер скажет о неопределенных ссылках), то значит и обектники не все.
Вперед и спесней, забудь про слова нельзя, немогу, нехочу........
Уважаемые коллеги, не думайте что в век когда космические корабли бораздят просторы галактик вам не понадобится напильник и паяльник.
|
|
olegenty |
Отправлено: 01.04.2004, 07:07 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
знал из этого только половину. спасибо за ликбез. одна только, как я понимаю, беда: *.obj должны быть откомпилированы на той же версии Builder'а?
|
|
klen |
Отправлено: 01.04.2004, 08:55 |
|
Машинист паровоза
Группа: Участник
Сообщений: 239
|
Не обязательно, потому что обьектник это всеголишь куски исполняемого кода с таблицей символов по которой линковщик определяет где и что лежит и расчитывает реальные смешения в образе программы. Глано чтоб они компилировались компилятором одной фрми. Например у Borlanda формат OMF , а вот VC использует COFF (различие лишь в таблице символов как я понимаю, это связанно с тем что линкеры по разному работают).
Отредактировано klen — 01/04/2004, 10:01 |
|
olegenty |
Отправлено: 01.04.2004, 09:01 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
заимел в виду. я в такие ситуации не попадал ни разу, хотя компонентов 3-х фирм у меня стоит, как грязи...
|
|
klen |
Отправлено: 01.04.2004, 11:38 |
|
Машинист паровоза
Группа: Участник
Сообщений: 239
|
так этож компоненты третьих фирм, а не компиляторы и линковщики третьих фирм |
|
marconi |
Отправлено: 01.04.2004, 14:17 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 86
|
Я конечно попробую, но мне ещё рано.
Спасибо.
|
|