Win32 Delphi アプリの一部を別の会社の Linux gcc プログラムで使用できるようにする必要があります。
スループットと展開の要件により、あらゆる種類のリモート サービスが不適切になるため、FreePascal を使用して、gcc アプリが呼び出すことができる .SO (Linux の DLL に相当) を構築することを検討しています。
C/C++ を使用してから長い時間が経ち、Linux では使用したことがないため、gcc 呼び出し元との互換性のために DLL/SO インターフェイスをどのように構築するのが最善かについて少し確信が持てません。
これが私のデータ構造の表現です
TFoo = record
x, y : double;
a : smallint;
b : string;
end;
TBar = record
a : double;
b : longint;
c : string;
end;
TFooBar = record
foo : array of TFoo;
bar : array of TBar;
end;
procedure Process(const inFooBar : TFooBar);
この Process メソッドを FreePascal .SO 経由で外部から使用できるようにするには、これらの宣言をどのように変更する必要がありますか? 私はその線に沿って何かを考えています
TFoo = record
x, y : double;
a : smallint;
b : PChar;
end;
TBar = record
a : double;
b : longint;
c : PChar;
end;
TFooBar = record
foo : ^TFoo;
foo_count : longint;
bar : ^TBar;
bar_count : longint;
end;
procedure Process(const inFooBar : TFooBar);
私は正しい軌道に乗っていますか?私がこれを正確に行う必要はありません。他社のプログラマーが私のミスを修正してくれる可能性が非常に高いです。私が送ったものを見て、彼らがあまり笑ってほしくないだけです。