delphi写的dll,Pchar 传参数,c#要怎样声明

函数原形如下,vb6,vfp,delphi 都可以正常调用,.net要怎样声明?

function StrAddStr(inpustr:PChar ;Var OutPutstr:PChar):integer;stdcall;
var
   str1:string;
begin
    str1:=inpustr;
    OutPutstr:=Pchar(str1+str1);
    result:=0;
end;

 

c#声明

[DllImport("PayApiFun.dll", EntryPoint = "StrAddStr", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
 static extern int StrAddStr(string inputstr,ref IntPtr outputstr);

string inputstr="我是中国人2019yes";

IntPtr outputs = Marshal.AllocHGlobal(255);   参数传入,申请内存空间

int real=StrAddStr(inputstr,ref outputs);

Marshal.PtrToStringAnsi(outputs).ToString();  获取地址内信息

你可能感兴趣的:(Pchar)