读书人

delphi 怎样调用C#动态库解决办法

发布时间: 2013-11-19 22:55:29 作者: rapoo

delphi 怎样调用C#动态库
程序代码:
C#里面的:public static extern int GetDeviceListEx(IntPtr DeviceListFileName);

我转成delphi的:function GetDeviceListEx(DeviceListFileName: THandle):Integer;stdcall;
external 'DeviceServer.dll';
下面是我的代码;
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
p:PChar;
i,j:Integer;
filename :THandle;

begin
str:='c:\web.xml';
i:=PChar(aa);
filename:=PAnsiChar(P);
j:=GetDeviceListEx(filename);
ShowMessage(IntToStr(q));
end;

问题:怎样调用function GetDeviceListEx(DeviceListFileName: THandle):Integer;stdcall;
就是把'c:\web.xml' 传进DeviceListFileName;
新手求指导;谢谢!
[解决办法]
从你C#的参数类型名来看,DeviceListFileName不像是THANDLE类型,也不是PCHAR类型吧?
而你在Delphi调用时传的是PAnsiChar,那你应该把C#的函数参数类型DeviceListFileName改成char*
[解决办法]
参数类型是HMODULE,而你传的是一个字符串
去问问“别人”吧,只有设计接口的人才知道是怎么用的

读书人网 >.NET

热点推荐