![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
COM-технология и Дельфи 2009
Олег Крапивин © (2010-12-03 20:30:00)Здравствуйте уважаемые господа! Изучаю СОМ и возник вопрос по компилятору Д2009.
Делаю так(простейший внутр.сервер). Добавил ActiveX, COM Object, прописал интерфейсы(Add и Sub). Компилирую-все нормально.
Далее прописываю еще два интерфейса в этом объекте (Mult и Divide), обновляю реализацию, компилирую, вываливается список ошибок:
[DCC Error] Unit1.pas(17): E2003 Undeclared identifier: 'GetTypeInfoCount'
[DCC Error] Unit1.pas(17): E2003 Undeclared identifier: 'GetTypeInfo'
[DCC Error] Unit1.pas(17): E2003 Undeclared identifier: 'GetIDsOfNames'
[DCC Error] Unit1.pas(17): E2003 Undeclared identifier: 'Invoke'
[DCC Fatal Error] Project1.dpr(6): F2063 Could not compile used unit 'Unit1.pas'.
Многое создается автоматом, а где это искать?
Что нужно изменить в настройках компилятора, подскажите, если кто сталкивался. Спасибо.
_Юрий (2011-01-16 11:26:00) [1]
> При добавлении нового объекта и объявлении его методов он
> в юните не появляется (не смотря на рефреш).
Юнит с интерфейсом обновляется. Юнит с реализацией нетрудно обновить и руками.
> Неужели в сервере можно объявить только один объект?
Нет
Anatoly Podgoretsky (2011-01-15 22:07:00) [2]regsvr32
Anatoly Podgoretsky (2011-01-15 22:03:00) [3]> Олег Крапивин (15.01.2011 21:40:09) [9]
regscr32 /?
sniknik (2011-01-15 22:00:00) [4]> Как его встроить в систему?
DllRegisterSerber
или воспользоваться regsvr32.exe
Олег Крапивин (2011-01-15 21:40:00) [5]Удалено модератором
Олег Крапивин (2011-01-15 21:29:00) [6]Второе:
Как регистрировать сервер?
Из среды IDE делается без проблем, но в результате компиляции я получаю файл .DLL.
И что с ним дальше делать? Как его встроить в систему?
Олег Крапивин (2011-01-15 21:18:00) [7]
> Dzmitry.Loktseu (06.01.11 12:07) [6]
Спасибо Дмитрий! Компиляция прошла, но вывалился следующий вопрос:
При добавлении нового объекта и объявлении его методов он в юните не появляется (не смотря на рефреш).
Я объявил еще один объект Circle (X,Y,R), абсолютно не связанный с предыдущим (ну экскрементирую млин), который должен рисовать окружность.
В юните без изменений.
Неужели в сервере можно объявить только один объект?
Научите пожалуйста или ссылочку где об этом почитать.
Dzmitry.Loktseu (2011-01-06 12:07:00) [8]Делаешь так:
1. File -> New -> Other -> ActiveX -> ActiveX Library
2. File -> New -> Other -> ActiveX -> Automation Object
3. В окне редактора библиотеки типов, добавляешь необходимые методы (Add, Sub, Mul, Div)
4. Жмешь refresh implementation
5. Компилируешь
Почти весь код генерится автоматически, тебе остается только прописать реализацию методов интерфейса в классе.
ReLock (2011-01-05 22:44:00) [9]Удалено модератором
KSergey (2010-12-25 17:11:00) [10]Ошибка в 17-й строке.
_Юрий (2010-12-24 21:56:00) [11]Код в студию
Олег Крапивин (2010-12-24 15:19:00) [12]И то и другое. Cначала ActiveX, затем ComObj. Хотя рассматривается именно Сом-технология.
uses
Windows, ActiveX, Classes, ComObj, Project1_TLB, StdVcl;
clickmaker (2010-12-13 11:18:00) [13]uses comobj или activex ?