c#调用dephi的dll问题,传入值总是不对??
dephi中的方法:function mytest(buf:array of byte; len:integer):integer;cdecl;
var
pBuf:array[0..13] of Byte ;
begin
result := len;
end;
c#中调用:
[DllImport(_dllFile, CallingConvention = CallingConvention.Cdecl)]
public extern static int mytest(byte[] buf, int len);
int i = mytest(buf, 4);
i始终不是4?
已试过将dephi方法换成stdcall方式,调用直接报错。。
还有传送buf[0]的方式调用也是一样不对。。困扰好几天了,大家帮帮我啊~~~~~~~~~~~~~~~~~~~~~ --------------------编程问答-------------------- 自己顶一下。。。。。。。。。。。。 --------------------编程问答-------------------- 期待大家帮忙阿,另外我用的是vs2005 --------------------编程问答--------------------
function mytest(buf:TByteArray;len:integer):integer;stdcall;
begin
result := len;
end;
exports
mytest;
--------------------编程问答-------------------- 另外BS 0分贴 --------------------编程问答--------------------
[DllImport("C:\\Documents and Settings\\Administrator\\桌面\\新建文件夹\\Project1.dll")]
public extern static int mytest( byte[] buf,int len);
byte[] buf = new byte[10];
int a = mytest(buf, 98);
同意 --------------------编程问答-------------------- 谢谢liangpei2008,我也想给分啊,但没分。。。。。。。。。。。
你的意思是delphi定义数组不能用array of byte方式吗,晕这样的话我不是要重写所有这些方法。。。 --------------------编程问答-------------------- 已试,delphi中将array of byte类型定义改为TByteArray可以正常取值,但方法还是要定义为cdecl方式,用stdcall报读写内存错误。。。
补充:.NET技术 , C#