I don't know what FPC does with member functions, but Delphi does not
export them. You cannot put a member function in the export part of a library. You have to create a wrapper (normal function with Self as the first argument) and then export the wrapper. So, if you happen to have a good class API in Delphi, you have to manually type wrappers and export them. This can be changed in FPC by allowing TMyObject.MyFunction in the export part of a library.
That would be nice! But would would be the inverse of exporting a method? Maybe this: type User = class public: function Sum(a, b: Integer): Integer; external 'mylib.dll'; end; being that Sum is a method created on a object pascal library. On 1/22/07, Daniël Mantione <[EMAIL PROTECTED]> 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´t 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. -- Felipe Monteiro de Carvalho _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel