当前位置:编程学习 > C#/ASP.NET >>

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;





 [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);

--------------------编程问答-------------------- 另外BS 0分贴 --------------------编程问答--------------------
引用 4 楼 liangpei2008 的回复:
另外BS 0分贴


同意 --------------------编程问答-------------------- 谢谢liangpei2008,我也想给分啊,但没分。。。。。。。。。。。
你的意思是delphi定义数组不能用array of byte方式吗,晕这样的话我不是要重写所有这些方法。。。 --------------------编程问答-------------------- 已试,delphi中将array of byte类型定义改为TByteArray可以正常取值,但方法还是要定义为cdecl方式,用stdcall报读写内存错误。。。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,