我在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的残酷软件版本不匹配。我已经谷歌搜索过了,但目前还没有发现解决方案。
欢迎提供任何帮助 :)