On Monday 22 January 2007 20:17, Felipe Monteiro de Carvalho wrote: > Hello, > > Now, I utilized dllview software I created and saw that cpplib exports > this function: _ZN4User3SumEii > IIRC C++ compiler/platform dependant. So do not use this to be compiler independant GCC even changed its name mangling in between versions.
> Then, I created a simple pascal software to call that function: > > program loadcpp; > > {$mode objfpc}{$H+} > One possible problem is C++ multiple inheritance. I would propose > that, to start with, just disconsider it. > AFAIK the class that inherits from multiple classes, is actually just several classes with several vtables. To be able to use it from pascal, the self pointer in function User_Sum(Self: Pointer; a, b: cint): cint; cdecl; external should be different depending on which vtable you want to call. http://www.freepascal.org/wiki/index.php/Qt4_binding#C.2B.2B_Multiple_inheritance implementation of QWidget_to_QPaintDevice: QPaintDeviceH QWidget_to_QPaintDevice(QWidgetH handle) { return (QPaintDeviceH)(QPaintDevice *)(QWidget *)handle; } the typecast (QPaintDevice *) turns the number (QWidget *)handle into another number, pointing to another vtable. But again this is compiler/version dependant reading the following: http://gcc.gnu.org/ml/gcc-patches/2000-01/msg00620.html regards, Den Jean _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel