c# 環境で、delphi インポートされた ActiveX コントロールのデータを転送する際に問題が発生します。
Delphi 側に、PChar を受け取って返す関数があります。私はそれを変更したり、好きなことをしたりできます。
function TActiveFormX.DelphiFunction(S: PChar): PChar;
begin
///do something with 'S'
result:=S;
end;
プログラムの C# 側には、delphi 関数を呼び出す関数があり、噛むための文字列パラメーターを与えます。
public void CSharpFunction()
{
string a = axActiveFormX1.DelphiFunction("sampleString");
}
私はそれをテストしましたが、C# が返された PChar を受け取るまではすべてうまくいくようです。次に、アプリケーション全体が応答を停止して終了します。例外メッセージを表示するために try-catch ブロックを実装しようとしましたが、何も表示される前にアプリがクラッシュします。
変数が同じ型ではないためにクラッシュすると思います。または、ソフトウェア バージョンの不一致が原因です: Delphi 5 + Visual Studio 2012.これをグーグル検索しましたが、これまでのところ運がありません。
どんな助けでも感謝します:)