Вход | Регистрация


1С:Предприятие ::

Метки:

Учусь создавать внешнюю компоненту в Microsoft VC++ 6.0

Я
   HideMan
 
26.08.04 - 11:41
Создал Projects  ATL СОМ AppWizard, скопировал определения интерфейсов (IDL) из мастера создания компонент. Теперь получается интерфейсы есть, а кода реализации функций нет. Пытаюсь создать новый класс AddIn1, а он создает новый интерфейс (причем IDispatch). Как реализовать функции?
 
  Рекламное место пустует
   spock
 
1 - 26.08.04 - 12:51
2(0)В VC визард (АТЛ) создает практически готовую DLL, нужно только правильно расставить галочки.
Допустим расставил правильно: создаем свой класс (унаследованный) от диспетчерского класса IDispatch, потом в дереве ClassView тыкаем мышой правой кнопкой по интерфейсу и в контекстном меню будет Add method/Add property (методы/свойства). Ну смысл такой...
   HideMan
 
2 - 26.08.04 - 13:43
Как я понял из мастера, интерфейс должен быть IUnknown. Ну я пробовал переделывать в IDL интерфейсы на IUnknown, и в "COM_INTERFACE_ENTRY(IUnknown)//IDispatch", компилил и во вьюире не нашел и 1С-ка ругнулась сто нет CLSID или интерфейса
   spock
 
3 - 26.08.04 - 14:11
2(2)Кто такой "мастер" и что именно он тебе сказал? :)
   SnarkHunter
 
4 - 26.08.04 - 14:15
Мдя... теории бы почитать не мешало...
   spock
 
5 - 26.08.04 - 14:21
2(4)Угу, почитаю...
   SnarkHunter
 
6 - 26.08.04 - 14:40
(5)Да я не тебе...
   spock
 
7 - 26.08.04 - 14:44
2(6)Так почему не мне, мне.... очень увлекательные вещи. Сказать где я их читаю? :-)
   HideMan
 
8 - 26.08.04 - 14:46
(3) С "Технология создания внешних компонент" поставляется диск с примерами и в той же папке (VC50+) есть папка MASTER в которой есть уже готовые реализации интерфейсов
   spock
 
9 - 26.08.04 - 14:49
2(8)Почему-то я так ии подумал.
   HideMan
 
10 - 26.08.04 - 14:50
(4) Читаю как только есть время. Ну вот я и хочу понять чего я такого не дочитал в технологии COM что при создании ATL-ки и классов мастерами появляется солько coclass сколько я создаю классов и интерфейсов.
 
  Рекламное место пустует
   HideMan
 
11 - 26.08.04 - 16:12
Тада скажите, можно ли реализовать внешнюю компоненту с помощью одного визарда или нет? Буду писать руками.
   HideMan
 
12 - 26.08.04 - 16:14
Т.е. MASTER-ом  ;-)
   IAm
 
13 - 26.08.04 - 16:35
нифига я не въезжаю в COM-технологии на VC++
во все въехал, в GDI, в оконные классы, а все эти коинитиэлйзы и ианноуны
вызывают у меня перемыкание мозга
   IAm
 
14 - 26.08.04 - 16:36
то ли дело на VB, Раз-два и готово
   spock
 
15 - 26.08.04 - 16:49
2(11)Я тебе в (1) сказал все, что тебе нужно было. И кстати, в инете наверняка есть контент по созданию DLL на VC с поддержкой COM.
2(14):-) Так может и хватит VB? Нафиг он нужен этот VC.
   HideMan
 
16 - 26.08.04 - 17:06
(15) А ты пробовал именно внешнюю компоненту делать или DLL, что потом открывается комп = СоздатьОбъект("MComp")
   IAm
 
17 - 26.08.04 - 17:16
15 Типа скорость и все такое
   HideMan
 
18 - 26.08.04 - 17:22
(15) Да я спрашиваю о внешних компонентах, а не об OLE-Automation
   HideMan
 
19 - 26.08.04 - 17:24
(17) то же: Я спрашиваю о внешних компонентах, а не об OLE-Automation
   HanProg
 
20 - 26.08.04 - 17:29
Здесь много подводных комней, например компоненту надо регистрировать в реестре
затем напинается сплошной полиморфизм и черный ящик ;-((( один геморой от мелко
мягкого ты еще их контейнеры не видел, вот где отстой.
   IAm
 
21 - 26.08.04 - 17:33
17 А я с тобой вообще не разговариваю.
   HideMan
 
22 - 26.08.04 - 17:34
(0) Еще раз: (из документации) "внести в IDL-файл определения интерфейсов 1C:Предприятия" сделал (исправил в модуле "_Module.Init(ObjectMap, hInstance, &LIBID_AddInLib);"), но как теперь по человечески интерфейсам назначить их реализацию (код, привязать к классам, "запрограммировать функциональность компоненты")
   spock
 
23 - 27.08.04 - 07:58
2(16)Нет, сам я такого рода ВК не делал.
Но смею заметить, имхо, что в документации от 1с нет примера подобного.
Только вида <vendor>.<progid>
   Igorexa
 
24 - 27.08.04 - 13:12
Давай-ка Женя мне диски с VC. Кончайте парни мозги компостировать насчет VC. Читайте матчасть
   HideMan
 
25 - 27.08.04 - 15:33
Ладно, пойдем с другой стороны: Достаточно ли использовать в компоненте интерфейс IInitDone?
   HideMan
 
26 - 02.09.04 - 16:40
И так у меня получилось: ПодключитьВнешнююКомпоненту("AddIn.AddInObject10.1"). Блин, открытие, оказывается кроме описания интерфейсов типа IInitDone, нужно есче использовать uuid из MASTER-примера создания ВК (AB634001-F13D-11d0-A459-004095E1DAEA). Потом уже нашел http://soaron.fromru.com/vkhints.htm Все я не понял прикол с uuid. Нафига?



Список тем форума
Рекламное место пустует   Рекламное место пустует
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует