Re: extern "C" and wrapping
On Jul 6, 10:55 am, "b...@blah.com" <GrahamJWa...@gmail.com> wrote:
Hi Roland, and thanks James for your reply.
Roland, do you mean the approach is "doomed" .... i.e. even if we pass
link and get and exe with some functions/classes available... we will
ultimately hit a large dirty wall? Or do you use 'doomed' in the sense
that we have no other choice but providing we can do the mapping,
we'll be ok?
Doomed means that it won't work. The approach I suggested will
allow you to get around the mangling problem (since only
function names are mangled, and you only call functions through
pointers in the vtable). With the result that everything will
compile and link just fine, but may core dump on execution,
because different compilers lay out the vtable differently.
I'd like to know if our approach is destined for failure or is
it the case that if we get the symbols mapped and linked we
should be ok.
All C++ must be compiled by the same compiler.
About the only way to get around this is to define a very, very
narrow interface in C, using C style structs, or even better,
serialized data, which you marshall and unmarshall at both ends,
and then take whatever steps are necessary on your platform to
ensure that your dynamicly linked component is autonome. (I
think this is the default for Windows. It takes some explicit
precautions under Unix.)
OK put it this way... has anybody else out there done this?
Some applications do use plug-in's, yes.
thanks much. We have a very importance decision to make in the
next 4 hours!! :(
Make it flexible, so you can go back and fix it when it doesn't
work:-).
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34