Lazarus (win32) и COM
Модератор: Модераторы
Lazarus (win32) и COM
Интересно, а как Lazarus дружит с COM?
Есть проект, который написан на Delphi. В основе проекта лежит пример создания COM сервера в сервисе от Набережных С.Н. Пример демонстрирует создание двух типов объектов - обычного и синглетона, а также два способа доступа к синглетону, через CoCreateInstance и через Running Objects Table посредством функции GetActiveObject.
Существует необходимость портировать проект в Lazarus. Возможно ли это?
Есть проект, который написан на Delphi. В основе проекта лежит пример создания COM сервера в сервисе от Набережных С.Н. Пример демонстрирует создание двух типов объектов - обычного и синглетона, а также два способа доступа к синглетону, через CoCreateInstance и через Running Objects Table посредством функции GetActiveObject.
Существует необходимость портировать проект в Lazarus. Возможно ли это?
И та и лругая функция (CoCreateInstance() и GetActiveObject()) присутствуют в RTL FreePascal, так что опробовать работу проекта, скомпилировав его в FreePascal'е, нет никаких объективных препятствий. Проблемы будут в других местах, но они стандартны при переносе проекта с Delphi на FreePascal и поэтому говорить о них скучно... 
Vadim писал(а):Проблемы будут в других местах, но они стандартны при переносе проекта с Delphi на FreePascal и поэтому говорить о них скучно...
Полностью согласен, так как небольшой опыт переноса проектов с Delphi в Lazarus имею.
Вот если бы кто-нибудь из уважаемых мастеров FreePascal подробно описал создания COM-сервера в сервисе с примером, то была б очень неплохая и полезная статья в разделе "статьи".
yuray
Дык понимаешь, какая штука... Эта статья будет практически ничем не отличаться от любой статьи COM, написаной для Delphi...
Дык понимаешь, какая штука... Эта статья будет практически ничем не отличаться от любой статьи COM, написаной для Delphi...
Вот если бы кто-нибудь из уважаемых мастеров FreePascal подробно описал создания COM-сервера в сервисе с примером, то была б очень неплохая и полезная статья в разделе "статьи".
можешь по статьям Delphi разобраться и написать статью
все будут благодарны
Vadim писал(а):yuray
Дык понимаешь, какая штука... Эта статья будет практически ничем не отличаться от любой статьи COM, написаной для Delphi...
Как это не будет? Очень даже будет. В Lazarus нет TService из SvcMgr, зато есть TDaemon... и это только начало
ev писал(а):можешь по статьям Delphi разобраться и написать статью все будут благодарны
До уважаемых мастеров мне далеко...
yuray писал(а):В Lazarus нет TService из SvcMgr
Вообще-то я в такие глубины не вдавался.
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
Две недели пытался портировать delphi проект использующий COM - в итоге понял что бесполезно:
отсутствуют TComServer, TTypedComObjectFactory, TTypedComObject и множество других необходимых для COM вещей.
Тащить их из исходников delphi - практически писать заново - очень долго.
Может кто подскажет как быть? особенно нужен ком-сервер. Или кто подскажет хорошую библиотеку на fpc для Windows NameSpace Extensions?
отсутствуют TComServer, TTypedComObjectFactory, TTypedComObject и множество других необходимых для COM вещей.
Тащить их из исходников delphi - практически писать заново - очень долго.
Может кто подскажет как быть? особенно нужен ком-сервер. Или кто подскажет хорошую библиотеку на fpc для Windows NameSpace Extensions?
AbakAngelSoft
В файле comobj.pp есть TComServerObject, TComObjectFactory. Такой не пойдёт?
В файле comobj.pp есть TComServerObject, TComObjectFactory. Такой не пойдёт?
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
To Vadim:
А как с ними работать? Подскажите если не сложно - я привык к тому что есть отдельно TComObject - реализует интерфейсы и отдельно TComServer - регистрирует классы, отдает фабрики. TComServerObject - это что за монстер?
А как с ними работать? Подскажите если не сложно - я привык к тому что есть отдельно TComObject - реализует интерфейсы и отдельно TComServer - регистрирует классы, отдает фабрики. TComServerObject - это что за монстер?
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
Хотел бы опять поднять эту тему. Может есть сторонние библиотеки для создания com серверов - которые можно портировать в лазаря? Разобрался с разницей исходников delphi и lazarus в лазаре com в принципе не реализован.
Подскажите кто знает!
Подскажите кто знает!
AbakAngelSoft
К сожалению, я не знаю как с ним работать. Единственное, что мне требовалось от СОМ в Delpi - это вывод отчётов в Word и Excel, а это, согласитесь, несколько другие функции. Более, я бы сказал, "одетые".
. Однако меня резко не устраивало присутствие чужого (и, вдобавок, грозящего Колымой
) приложения. Поэтому я сейчас делаю все отчёты в HTML формате. И поскольку я больше увлекаюсь утилитами, то обмен данными между приложениями, а тем более выполнение каких-то действий сторонними приложениями, для меня не актуален.
К сожалению, я не знаю как с ним работать. Единственное, что мне требовалось от СОМ в Delpi - это вывод отчётов в Word и Excel, а это, согласитесь, несколько другие функции. Более, я бы сказал, "одетые".
На мой взгляд, если есть lazarus для win32, то и технология COM должна быть реализована. А то как-то очень все обрезано смотрится. Интересно, что думают об этом разработчики? Планируют ли они работать в этом направлении? Если планируют, то когда?
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
yuray писал(а):На мой взгляд, если есть lazarus для win32, то и технология COM должна быть реализована. А то как-то очень все обрезано смотрится
лозунг лазаруса "Написаное однажды. Может быть скомпилировано где угодно." соответсвенно СОМ под него не попадает.
