3

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.これをグーグル検索しましたが、これまでのところ運がありません。

どんな助けでも感謝します:)

4

1 に答える 1