Lazarus (win32) и COM

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Lazarus (win32) и COM

Сообщение yuray » 18.07.2008 10:50:20

Интересно, а как Lazarus дружит с COM?
Есть проект, который написан на Delphi. В основе проекта лежит пример создания COM сервера в сервисе от Набережных С.Н. Пример демонстрирует создание двух типов объектов - обычного и синглетона, а также два способа доступа к синглетону, через CoCreateInstance и через Running Objects Table посредством функции GetActiveObject.
Существует необходимость портировать проект в Lazarus. Возможно ли это?
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Re: Lazarus (win32) и COM

Сообщение Vadim » 18.07.2008 11:28:53

И та и лругая функция (CoCreateInstance() и GetActiveObject()) присутствуют в RTL FreePascal, так что опробовать работу проекта, скомпилировав его в FreePascal'е, нет никаких объективных препятствий. Проблемы будут в других местах, но они стандартны при переносе проекта с Delphi на FreePascal и поэтому говорить о них скучно... :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Lazarus (win32) и COM

Сообщение yuray » 18.07.2008 12:14:13

Vadim писал(а):Проблемы будут в других местах, но они стандартны при переносе проекта с Delphi на FreePascal и поэтому говорить о них скучно... :)

Полностью согласен, так как небольшой опыт переноса проектов с Delphi в Lazarus имею. :?
Вот если бы кто-нибудь из уважаемых мастеров FreePascal подробно описал создания COM-сервера в сервисе с примером, то была б очень неплохая и полезная статья в разделе "статьи".
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Re: Lazarus (win32) и COM

Сообщение Vadim » 18.07.2008 12:47:32

yuray
Дык понимаешь, какая штука... Эта статья будет практически ничем не отличаться от любой статьи COM, написаной для Delphi... :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Lazarus (win32) и COM

Сообщение ev » 18.07.2008 13:06:35

Вот если бы кто-нибудь из уважаемых мастеров FreePascal подробно описал создания COM-сервера в сервисе с примером, то была б очень неплохая и полезная статья в разделе "статьи".

можешь по статьям Delphi разобраться и написать статью
все будут благодарны ;)
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Re: Lazarus (win32) и COM

Сообщение yuray » 18.07.2008 13:22:21

Vadim писал(а):yuray
Дык понимаешь, какая штука... Эта статья будет практически ничем не отличаться от любой статьи COM, написаной для Delphi... :)

Как это не будет? Очень даже будет. В Lazarus нет TService из SvcMgr, зато есть TDaemon... и это только начало :)
ev писал(а):можешь по статьям Delphi разобраться и написать статью все будут благодарны

До уважаемых мастеров мне далеко... :(
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Re: Lazarus (win32) и COM

Сообщение Vadim » 18.07.2008 13:49:51

yuray писал(а):В Lazarus нет TService из SvcMgr

Вообще-то я в такие глубины не вдавался. :) TService, конечно, штука полезная, но вот на WinAPI сервис получается куда меньше по размерам. Собственно сервис, как никто другой, требует миниатюризации, т.к. висит в памяти он всегда, только не всегда к нему обращаются за работой, поэтому чем меньше он будет весить, тем комфортнее будет чувствовать себя компьютер. В этом отношении мне нравится inetd в unix - надо мне сбросить файл на сервер, запускается vsftp и, сделав свою работу, выгружается, надо мне письмо получить с почтового ящика, запускается popd, выдаёт мне письмо и выгружается. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Lazarus (win32) и COM

Сообщение AbakAngelSoft » 17.12.2008 01:04:20

Две недели пытался портировать delphi проект использующий COM - в итоге понял что бесполезно:
отсутствуют TComServer, TTypedComObjectFactory, TTypedComObject и множество других необходимых для COM вещей.
Тащить их из исходников delphi - практически писать заново - очень долго.
Может кто подскажет как быть? особенно нужен ком-сервер. Или кто подскажет хорошую библиотеку на fpc для Windows NameSpace Extensions?
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Lazarus (win32) и COM

Сообщение Vadim » 17.12.2008 06:21:48

AbakAngelSoft
В файле comobj.pp есть TComServerObject, TComObjectFactory. Такой не пойдёт?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Lazarus (win32) и COM

Сообщение AbakAngelSoft » 18.12.2008 10:06:00

To Vadim:
А как с ними работать? Подскажите если не сложно - я привык к тому что есть отдельно TComObject - реализует интерфейсы и отдельно TComServer - регистрирует классы, отдает фабрики. TComServerObject - это что за монстер?
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Lazarus (win32) и COM

Сообщение AbakAngelSoft » 07.02.2009 19:00:09

Хотел бы опять поднять эту тему. Может есть сторонние библиотеки для создания com серверов - которые можно портировать в лазаря? Разобрался с разницей исходников delphi и lazarus в лазаре com в принципе не реализован.
Подскажите кто знает!
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Lazarus (win32) и COM

Сообщение NXP » 07.02.2009 20:01:49

AbakAngelSoft писал(а):в лазаре com в принципе не реализован.

т.к. это "зло" никому не нужно :wink:
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: Lazarus (win32) и COM

Сообщение Vadim » 07.02.2009 20:18:13

AbakAngelSoft
К сожалению, я не знаю как с ним работать. Единственное, что мне требовалось от СОМ в Delpi - это вывод отчётов в Word и Excel, а это, согласитесь, несколько другие функции. Более, я бы сказал, "одетые". :) . Однако меня резко не устраивало присутствие чужого (и, вдобавок, грозящего Колымой :) ) приложения. Поэтому я сейчас делаю все отчёты в HTML формате. И поскольку я больше увлекаюсь утилитами, то обмен данными между приложениями, а тем более выполнение каких-то действий сторонними приложениями, для меня не актуален.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Lazarus (win32) и COM

Сообщение yuray » 12.02.2009 14:00:44

На мой взгляд, если есть lazarus для win32, то и технология COM должна быть реализована. А то как-то очень все обрезано смотрится. Интересно, что думают об этом разработчики? Планируют ли они работать в этом направлении? Если планируют, то когда?
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Re: Lazarus (win32) и COM

Сообщение Attid » 12.02.2009 16:14:18

yuray писал(а):На мой взгляд, если есть lazarus для win32, то и технология COM должна быть реализована. А то как-то очень все обрезано смотрится

лозунг лазаруса "Написаное однажды. Может быть скомпилировано где угодно." соответсвенно СОМ под него не попадает.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

След.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: MailRu[bot] и гости: 25

Рейтинг@Mail.ru