- zu konvertierender Pascal Quellcode (Testunit.pas):
unit TestUnit;
interface
type
MyEnum = (meOne, meTwo, meThree);
function DoSomething(Value : MyEnum) : string;
var
I : Integer;
Buffer : array [0..255] of Char;
implementation
function DoSomething(Value : MyEnum) : string;
begin
case Value of
meOne : Result := 'One';
meTwo : Result := 'Two';
meThree : Result := 'Three';
end;
end;
end.
- der passende Header (*.hpp) kann wie oben beschrieben, oder auch auf der Kommandozeile per Hand generiert werden: dcc32 -jphn TestUnit.pas
- DCC32.EXE ist der Pascal compiler, der Schalter „-jphn“ teilt dem Pascalcompiler mit, eine *.hpp und eine *.obj für den BC++Builder zu generieren
- die fertig generierte Testunit.hpp:
#ifndef TestUnitHPP
#define TestUnitHPP
#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <SysInit.hpp> // Pascal unit
#include <System.hpp> // Pascal unit
namespace Testunit
{
#pragma option push -b-
enum MyEnum { meOne, meTwo, meThree };
#pragma option pop
extern PACKAGE int I;
extern PACKAGE char Buffer[256];
extern PACKAGE AnsiString __fastcall DoSomething(MyEnum Value);
} /* namespace Testunit */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Testunit;
#endif
#pragma option pop // -w-
#pragma option pop // -Vx
#pragma delphiheader end.
#endif // TestUnit
- befreit vom Ballast sieht die Testunit.hpp nun so aus:
enum MyEnum { meOne, meTwo, meThree };
int I;
char Buffer[256];
AnsiString __fastcall DoSomething(MyEnum Value);
- die Deklarationen wurden jetzt generiert, der Delphi-Code in der *.pas muss jetzt noch „per Hand“ selber umgesetzt werden 🙂