我在 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。我用谷歌搜索了这个,但到目前为止没有运气。
任何帮助表示赞赏:)