[fpc-devel] Linking to C++
Daniël Mantione
daniel.mantione at freepascal.org
Mon Jan 22 22:04:50 CET 2007
Op Mon, 22 Jan 2007, schreef Felipe Monteiro de Carvalho:
> On 1/22/07, Dani=EBl Mantione <daniel.mantione at freepascal.org> wrote:
> > Of course, you can import a class like you did, and even automate it, I
> > don't see a problem with adding C++ mangling. But, you cannot use class
> > syntax, since classes are fundamentally incompatible with C++ classes.
> =
> Automating C++ mangling would already be great, but if one can=B4t use
> c++ methods inside classes, how will the name mangler know that the
> function is actually a method from a class with a given name?
> =
> And how would this be added? Extra keywords to be added to functions?
> Maybe 2 different keywords, one for cpp method name mangling and
> another for c function name mangling, so I would declare:
> =
> function User.Sum(Self: Pointer; a, b: cint): cint; cdecl; external
> 'cpplib.dll'; cpp_method_name_mandling;
> =
> On this solution we treat the C++ object as a pointer that is passed
> around, and can only be created and destroyed by imported functions.
It will have to be done like this: Treat the self pointer as some kind of =
handle. The handle is created by the constructor and destroyed by the =
destructor. Calling virtual methods is not possible, in fact OOP =
programming is not possible due to the lack of polymorphy; you will =
interface with the C++ library completely with procedural programming.
Dani=EBl
More information about the fpc-devel
mailing list