C++ BuilderからDelphiの手続きを呼び出す
Delphiで作ったユニット(フォームも含む)をC++ Builderで呼び出すことによって、Delphiで開発した資産をC++ Builderでの開発に役立てることができます。
C++ Builderでは直接.PASファイルをコンパイルできるので、C++ BuilderプロジェクトにDelphiのソースを含めて開発を行うことができます。

上の図の"DelphiUnit"でForm2のソースがDelphiUnit.pasになっていることに注目してください。DelphiのソースをC++ Builderのプロジェクトに追加するには「プロジェクト/プロジェクトに追加」メニューを実行してDelphiファイルを選択することによって行うことができます。
プロジェクトにDelphiファイルを追加するとC++ソースに自動的に必要なマクロが追加されます(下記)。
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop USERES("TestDelForm.res"); USEFORM("Main.cpp", Form1); USEFORMNS("DelphiUnit.pas", Delphiunit, Form2); //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->CreateForm(__classid(TForm2), &Form2); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } return 0; } //--------------------------------------------------------------------------- |
ただし、#include文は手動で追加する必要があります(下記)。
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Main.h" #include "DelphiUnit.hpp" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Form2->Show(); } //--------------------------------------------------------------------------- |
後は、普通のプロジェクトと同じようにコンパイルすれば、実行ファイルを作成することができます。