I think that integrating Lazarus with code written for C++ Builder is essentially a matter of establishing a calling interface between these two environments. It may well be that establishing an interface that could cope with classes and the calling of methods of classes (as opposed to simply calling non object-oriented functions) could be problematic.
My answer to this would be: Use a simple 'low tech' function based interface between the two environments, but then build a wrapper layer on both sides of the interface to convert between the 'low tech' interface to the class based interface expected by the Lazarus code and the C++ Builder code.
For example, if I have a TForm object for which I want to invoke the Show method, I could write the following C++ code:-
My_Form_Ptr->Show();
In my C++ environment, I would have a definition of the TForm::Show() function that would call another function like this:-
TForm_Show(My_Form_Ptr);
Tform_Show would be a Pascal non member function . This function would then call TForm::Show within the Pascal environment.
The above requires some change to existing C++ Builder code, but I believe that these would be limited in scope, and very simple in nature. Really just a conversion from one syntax to another.
I'm not sure whether it would matter having different declarations for the TForm class in both environments. If so, the answer would be to use different names in the two environments. Preferably by using a namespace, but if essential by renaming the class in the C++ environment to something like TForm_CPP.
Chris Gordon-Smith
London
Homepage:
http://graffiti.virgin.net/c.gordon-smith/Email Address: Please see my Home Page