OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 08 Ноябрь, 2024 11:22

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: COM автоматизация
СообщениеДобавлено: Суббота, 03 Ноябрь, 2018 03:01 
Аватара пользователя

Зарегистрирован: Четверг, 10 Сентябрь, 2009 18:14
Сообщения: 16
Добрый день!
Пытаюсь написать маленькую автоматизацию с использованием COM сервера.
Правильно ли я понимаю что для того чтобы использовать COM сервер - нужно сначала сгенерировать для него интерфейсный модуль?
Вызвал инструмент COM-Type Libraries, нашел нужный мне сервер в списке "Type Library", дальше "Generate Automation interface".
Но откомпилировать его не получается: получаю множество ошибок и первая в списке: "illegal sys flag".
Попытка найти подсказки во встроенном хелпе и гугле ничего не дала.
Вложение:
bb-com.png
bb-com.png [ 171.39 КБ | Просмотров: 17508 ]

Подскажите, пжст, как исправить.

Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: COM автоматизация
СообщениеДобавлено: Суббота, 03 Ноябрь, 2018 12:32 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ох. К сожалению, сто лет уже не пользовались COM.... Попробуйте пока сами покопать, если никто не откликнется. Не получится - попробую что-то вспомнить :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: COM автоматизация
СообщениеДобавлено: Суббота, 03 Ноябрь, 2018 12:46 
Аватара пользователя

Зарегистрирован: Четверг, 10 Сентябрь, 2009 18:14
Сообщения: 16
:(
ок. попробую.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: COM автоматизация
СообщениеДобавлено: Понедельник, 05 Ноябрь, 2018 13:33 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 358
Откуда: Россия, Стерлитамак
Все флаги вроде в разделе справки Platform-Specific Issues (Windows) должны быть описаны. Наверное надо какой-то использовать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: COM автоматизация
СообщениеДобавлено: Вторник, 06 Ноябрь, 2018 00:43 
Аватара пользователя

Зарегистрирован: Четверг, 10 Сентябрь, 2009 18:14
Сообщения: 16
начал всматриваться что сгенерировалось.

Код:
      (* IOtAction Interface *)
      IOtAction* = POINTER TO RECORD ["{50CF2A57-582B-48BA-9344-B7FB1F280472}"] (stdole.IDispatch) (* dispatch, dual *)
      END;

в этот фрагмент внес 2 исправления и тогда он скомпилировался без ошибок:

Код:
      (* IOtAction Interface *)
      IOtAction* = POINTER TO ABSTRACT RECORD ["{50CF2A57-582B-48BA-9344-B7FB1F280472}"] (WinOleAut.IDispatch) (* dispatch, dual *)
      END;

POINTER TO RECORD -> POINTER TO ABSTRACT RECORD (по просьбе компилятора)
и
stdole.IDispatch -> WinOleAut.IDispatch

но кроме этого все интерфейсы сгенерились дважды:
Код:
   (* IOtEmailAttachments Interface *)
      IOtEmailAttachments* = POINTER TO ABSTRACT RECORD ["{4414FD91-D8BB-11D3-AAE7-00500422BC69}"] (WinOleAut.IDispatch) (* dispatch, dual *)
      END;
      (* IOtEmailAttachments Interface *)
      IOtEmailAttachments* = POINTER TO ABSTRACT RECORD ["{4414FD91-D8BB-11D3-AAE7-00500422BC69}"] (WinOleAut.IDispatch) (* size: 4, vtbl size: 64, dual, oleauto *)
      END;

и компилятор сообщает "multiply defined identifier"
если 1 удалить, то этот фрагмент тоже компилится (разница в них только в последующем комментарии, я же правильно понимаю,
что для компилятора и среды он не несет никакой смысловой нагрузки?).

это так и должно быть? или я что-то изначально неправильно делаю?
Интерфейсов в сервере много, вот сейчас ошибок компиляции этого модуля 12тыс. :
Код:
compiling "CtlOtAut"
  12152 errors detected

Как то странно много ошибок компиляции получается, это при том что я уже произвел множественную замену "POINTER TO ABSTRACT RECORD" и "stdole. -> WinOleAut."
Подскажите, пжст, я на правильном пути или нужно делать что то по другому?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: COM автоматизация
СообщениеДобавлено: Среда, 07 Ноябрь, 2018 13:50 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1580
Вроде там есть туториалы. Хотя сам я их не читал :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: COM автоматизация
СообщениеДобавлено: Среда, 07 Ноябрь, 2018 14:20 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3805
Я тоже COM никогда сам не делал, только использовал готовую подсистему Ctl.
Рекомендую обратиться также на международном форуме с вопросом.
https://community.blackboxframework.org/
Возможно там найдутся люди, кто сталкивался с такой проблемой.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB