C#调用delphi的dll,声明和出入参的写法

 参考来源:

delphi写的dll,Pchar 传参数,c#要怎样声明_津津有味道的博客-优快云博客

unit Unit1;

interface
uses
  SysUtils;

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

library Project1;

uses
  SysUtils,
  Classes,
  Unit1 in 'Unit1.pas';

{$R *.res}
exports
StrAddStr;
begin
end.

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

string inputstr="中国人yes";

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

int real=StrAddStr(inputstr,ref outputs);

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值