Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.17;
Скачать: CL | DM;

Вниз

COM-технология и Дельфи 2009   Найти похожие ветки 

 
Олег Крапивин   (2010-12-03 20:30) [0]

Здравствуйте уважаемые господа! Изучаю СОМ и возник вопрос по компилятору Д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".
Многое создается автоматом, а где это искать?
Что нужно изменить в настройках компилятора, подскажите, если кто сталкивался. Спасибо.


 
clickmaker ©   (2010-12-13 11:18) [1]

uses comobj или activex ?


 
Олег Крапивин   (2010-12-24 15:19) [2]

И то и другое. Cначала ActiveX, затем ComObj. Хотя рассматривается именно Сом-технология.

uses
 Windows, ActiveX, Classes, ComObj, Project1_TLB, StdVcl;


 
_Юрий   (2010-12-24 21:56) [3]

Код в студию


 
KSergey ©   (2010-12-25 17:11) [4]

Ошибка в 17-й строке.


 
ReLock ©   (2011-01-05 22:44) [5]

Удалено модератором


 
Dzmitry.Loktseu   (2011-01-06 12:07) [6]

Делаешь так:

1. File -> New -> Other -> ActiveX -> ActiveX Library
2. File -> New -> Other -> ActiveX -> Automation Object
3. В окне редактора библиотеки типов, добавляешь необходимые методы (Add, Sub, Mul, Div)
4. Жмешь refresh implementation
5. Компилируешь

Почти весь код генерится автоматически, тебе остается только прописать реализацию методов интерфейса в классе.


 
Олег Крапивин   (2011-01-15 21:18) [7]


> Dzmitry.Loktseu   (06.01.11 12:07) [6]

Спасибо Дмитрий! Компиляция прошла, но вывалился следующий вопрос:

При добавлении нового объекта и объявлении его методов он в юните не появляется (не смотря на рефреш).
Я объявил еще один объект Circle (X,Y,R), абсолютно не связанный с предыдущим (ну экскрементирую млин), который должен рисовать окружность.
В юните без изменений.
Неужели в сервере можно объявить только один объект?

Научите пожалуйста или ссылочку где об этом почитать.


 
Олег Крапивин   (2011-01-15 21:29) [8]

Второе:
Как регистрировать сервер?
Из среды IDE делается без проблем, но в результате компиляции я получаю файл .DLL.
И что с ним дальше делать? Как его встроить в систему?


 
Олег Крапивин   (2011-01-15 21:40) [9]

Удалено модератором


 
sniknik ©   (2011-01-15 22:00) [10]

> Как его встроить в систему?
DllRegisterSerber
или воспользоваться regsvr32.exe


 
Anatoly Podgoretsky ©   (2011-01-15 22:03) [11]

> Олег Крапивин  (15.01.2011 21:40:09)  [9]

regscr32 /?


 
Anatoly Podgoretsky ©   (2011-01-15 22:07) [12]

regsvr32


 
_Юрий   (2011-01-16 11:26) [13]


> При добавлении нового объекта и объявлении его методов он
> в юните не появляется (не смотря на рефреш).


Юнит с интерфейсом обновляется. Юнит с реализацией нетрудно обновить и руками.

> Неужели в сервере можно объявить только один объект?


Нет



Страницы: 1 вся ветка

Текущий архив: 2011.04.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.007 c
15-1293587663
TUser
2010-12-29 04:54
2011.04.17
Чтобы только мышкой тыкать


15-1293831003
Юрий
2011-01-01 00:30
2011.04.17
С днем рождения ! 1 января 2011 суббота


15-1292840260
ocean
2010-12-20 13:17
2011.04.17
К вопросу о нобелевских премиях


2-1295246151
NUser
2011-01-17 09:35
2011.04.17
Показать сообщение "недопустимый символ"


15-1293571785
Юрий
2010-12-29 00:29
2011.04.17
С днем рождения ! 29 декабря 2010 среда