如何调用delphi写的dll? ( 积分: 20 )

  • 主题发起人 主题发起人 enetyou
  • 开始时间 开始时间
E

enetyou

Unregistered / Unconfirmed
GUEST, unregistred user!
大侠们:我用D7写了一个dll,参数是一个字符串,返回值是一个整数,但在C#里面调用时需要参数为Pchar,不能用字符串作参数,大家说怎么办?例如下面的这个函数的dll:
function ceshi(s:String):integer;stdcall;
begin
if s='abcd' then
result 1
else
result 0;
end;
请问该怎么修改才能在C#中能正确被调用执行呢?
 
大侠们:我用D7写了一个dll,参数是一个字符串,返回值是一个整数,但在C#里面调用时需要参数为Pchar,不能用字符串作参数,大家说怎么办?例如下面的这个函数的dll:
function ceshi(s:String):integer;stdcall;
begin
if s='abcd' then
result 1
else
result 0;
end;
请问该怎么修改才能在C#中能正确被调用执行呢?
 
不要用string作参数
function ceshi(t:pchar;):iteger;stdcall;
var s:string;
begin
s:=t:
if s='abcd' then
result 1
else
result 0;
end;
 
楼上的兄弟,我就按照这样改的,可是我在调用函数时需要传的参数是string类型的,却总是提示出错,该怎么办呢?比如ceshi(opendialog1.filename),这时该怎么修改呢?
 
ceshi(pchar(string))
 
不要用string ,使用PChar
PChar对应C里面的char *,在C#里面是不是差不多
 
ymjy 我在c#中按你说的在字符串前面加上了pchar,可是不行啊,人家不认这个啊!
 
D7里的Dll不能在.net中调用,用D2005,体验一下吧。爽!
 
多人接受答案了。
 
后退
顶部