comp.lang.ada
 help / color / mirror / Atom feed
From: David Botton <david@botton.com>
Subject: Re: Plugins/Dynamic Libraries
Date: Thu, 11 Nov 2004 19:12:43 -0500
Date: 2004-11-11T19:12:43-05:00	[thread overview]
Message-ID: <2004111119124350073%david@bottoncom> (raw)
In-Reply-To: 41933fb1$0$9742$ba620e4c@news.skynet.be

On 2004-11-11 05:34:16 -0500, Adrien Plisson 
<aplisson-news@stochastique.net> said:

> well, let's relieve the pain:
> for dynamic libraries under Windows, the accepted method is _NOT_ COM ! 
> the equivalent of Windows COM under Linux may be CORBA, and the 
> equivalent of Linux dlopen under Windows is LoadLibrary.

I would not say they are equivalent. COM is also used as a spec for 
communication on a much smaller scale. As for being the accepted 
method, it depends on what you are trying to achieve. Most of the time 
COM is in fact preferable (encased in DLL, ie. an inproc server) since 
it is an automatic plug-in to Windows, .NET, VB, etc. DLLs still serve 
there place, but COM on Ada is easy to do and the results are far more 
flexible.

I find that in most modern serious projects COM (on Windows and 
starting recently for Mac OS X) is in fact being used over a plain dll 
and in particular if you are looking to do plug-ins.

In fact, on Mac OS X plug-in are also COM in a shared lib just like on 
Windows. COM is more of a spec for plug-ins that can interoperate than 
a distributed object system like CORBA.

There is no reason not to use the COM "spec" in the same way on Linux 
for plug-ins. Take a look at InsideCOM (Microsoft Press) for an 
introduction to COM the spec (it doesn't serve as a good intro to COM 
on Windows incidentally) The GNATCOM framework though would need a 
little bit of work though to make it really viable though for use on 
Linux, but is very reasonably doable.

I plan on a port of GNATCOM to OS X in the next year or so and that 
would be usable on Linux as well. On OS X it buys you the ability to 
plug-in to web browsers, etc. but on Linux you would still be able to 
use it for the purpose you are looking for.

> 
> if you plan on working on this subject, try to use equivalent 
> mechanisms on each platform you target.
> 
> please note that there are many bindings to those methods existing: 
> PolyORB, AdaBroker or ORBIT-Ada are CORBA implementations, DLib for 
> dlopen, LoadLibrary should be accessible through Win32Ada, and for 
> COM... well, i don't know...

GNATCOM of course :-)  as he pointed out. http://www.gnavi.org/gnatcom

David Botton




  reply	other threads:[~2004-11-12  0:12 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-10 20:46 Plugins/Dynamic Libraries Andrew W
2004-11-11  8:28 ` Martin Krischik
2004-11-11 10:49   ` Adrien Plisson
2004-11-11 12:42     ` Frank Piron
2004-11-11 13:59     ` Martin Krischik
2004-11-11 16:16       ` Pascal Obry
2004-11-12  0:00   ` David Botton
2004-11-12 18:17     ` Pascal Obry
2004-11-11 10:34 ` Adrien Plisson
2004-11-12  0:12   ` David Botton [this message]
2004-11-12  9:53     ` Adrien Plisson
2004-11-14  3:38       ` David Botton
2004-12-04 14:27 ` Lionel Draghi
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox