我在c#環境中爲delphi導入的ActiveX控件傳輸數據時遇到一些問題。將Delphi PChar傳遞給C#
我在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.我搜索了這個,但到目前爲止還沒有運氣。
任何幫助表示讚賞:)
請在C#端顯示DelphiFunction的聲明 – 2013-05-09 08:54:31
@David Heffernan是什麼聲明?我是Delphi-to-c#的新手,不明白你在問什麼:D – 2013-05-09 08:57:39
你已經展示了調用函數的代碼。但是必須有一些C#聲明函數。 – 2013-05-09 09:02:38