Have you seen the following page?
http://xplc.sourceforge.net/doc/others.php
Yes i have seen. There are very few things that work on Win32 and
Unix and are in a state where you can use or even try them.
XPCOM is one that works on Win32 (being used by Mozilla) and should
work. But it is also part of the reason I created XPLC (it was called
XPCOM-lite before the first release, I used to work on XPCOM), so... I
hear that UNO, SCF and GObject might be good choices that work on Win32,
but I did not work much with them, and only on Linux.
Compatiblity with COM is not the main issue. It can be a scenario
where i load my modules/plugings internally thru xplc and have a COM
interface to the whole thing around it. The plugins itself have not
to be COM compatible cause they are relative tight coupled and make
no sense in another environment i guess.
You seem to have a good grip around this, I see! Sounds good to me...
The key is binary compatibility. If you get something going with
the current version of XPLC, you could just bundle the DLL with
your application and just make the specification be to use this
version of XPLC. You could modify the magic numbers in the module
loader to have your own magic number, so that it will only load
modules designed for your application. You'd be incompatible with
any "normal" XPLC module, but you'd have perfect safety from any
crazy move on our parts (and most likely, modules for your
application would be pretty specific anyway).
Ok - thats the technical part - and is it allowed thru the license to
use a pure binary version of xplc in a commercial application?
By the way, we use a very common license, the Lesser General Public
License (often called LGPL, see
http://www.fsf.org/licenses/licenses.html#LGPL), so if you see
information about the LGPL, this is the same license we use.
In summary, you have to make available any changes that you make to XPLC
itself. Linking with other libraries or your program is allowed (WITHOUT
requiring you to make your source code available!), but you have to
allow for end-users to be able to replace the XPLC version you provide
with their own updated or modified version.
In short, if you do not modify XPLC and simply include an XPLC.DLL with
your application, you can just specify in the documentation which
version you used (so that users can download the correct one, make
changes and recompile the DLL), and everything will be fine.
I you *do* modify XPLC, you can then provide only those modifications,
either as a ZIP file of your modified version of XPLC or as a patch, you
do not have to provide any of your application source code.
Statically linking XPLC would be more problematic, as you would need to
provide a way for users to relink your application with their modified
version of XPLC. Using a DLL is very easy and legally safe.
I would ask you to put such an XPLC.DLL in the directory of your
application rather than in a global directory, so as to avoid people
thinking that this is the "real" XPLC that they should use. You could
rename the DLL, like XPLC_FOO.DLL or something, to make it clear that
this is specific to your "Foo" application.
I am trying to make it as easy as possible even for commercial closed
source applications to use XPLC, while at the same time defending it
against incompatible modifications (having the modifications available
makes it possible for me to review them or to at least blanket myself
and say "they do not use the standard XPLC, it might not work perfectly").
It also allows progress on XPLC to advance further, by polling all these
resources. I think it is only fair that instead of paying royalties on
the library, you pay with your potential improvements, right?
Stéphane and me just fixed this all five minutes ago! You can have
a look at CVS right now and tell us about it on the mailing list!
Ok - works great! I will write in the mailing list next... Thank you!
Excellent! Do not hesitate to report any further problems, even should
you decide to abandon XPLC! We are very eager to hear any constructive
criticism, and sometimes even the non-constructive ones!
We've been pretty open about stealing good ideas from others up to
now, I don't see why we'd stop! ;-)
Hope you are sharing ideas and not stealing them, otherwise they get
lost ;-)))
Hehe! :-)
--
Pierre Phaneuf
http://advogato.org/person/pphaneuf/
"I am denial, guilt and fear -- and I control you"