Главная страница
    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.47 MB
Время: 0.004 c
15-1294148572
alexdn_
2011-01-04 16:42
2011.04.17
c++


2-1294441804
Студент
2011-01-08 02:10
2011.04.17
Как открыть своё окно как бы "модальным" поверх чужого?


15-1293372734
Мимо не прошел
2010-12-26 17:12
2011.04.17
Свое


6-1236688524
maxistent
2009-03-10 15:35
2011.04.17
Передача данных через прокси


15-1294132538
dimonch-ik
2011-01-04 12:15
2011.04.17
траектория





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский