C#调用Delphi Dll返回字符串的示例(使用Move才能拷贝字符串)

时间:2023-03-10 06:51:21
C#调用Delphi Dll返回字符串的示例(使用Move才能拷贝字符串)
//----------------------Delphi-------------------
procedure GetSqlData(ASource: PChar; ADest: PChar; ADestSize: Integer); stdcall;
var
 S: string;
begin
 if ASource = nil then Exit;
 S := Format('%s 路过!',[ASource]);
 Move(S[1], ADest^, Min(ADestSize, Length(S)+1));
end;{ GetSqlData }
exports
 GetSqlData;
//----------------------C#-------------------
[DllImport(@"TempLib.dll")]
public static extern void GetSqlData(string ASourceStringBuilder ADest, int ADestSize);
private void button1_Click(object senderEventArgs e)
{
    StringBuilder vDest = new StringBuilder(1024);
    GetSqlData("Zswang", vDest, 1024);
    Text = vDest.ToString();
}
http://blog.****.net/zswang/article/details/1615264