VB调用delphi写的DLL,参数是BYTE数组,目的是在DLL中为数组赋值,对Delphi不熟,请各位高手们告诉我该怎么做啊!谢谢!

解决方案 »

  1.   

    我想问的是这个DLL里面应该怎样对VB传过来的BYTE数组赋值,我试了几种方法都不对。都是只能读数组内容,不能对数组赋值
      

  2.   

    有没有对VB和Delphi都熟的高手呀,快来看看呀,帮帮忙
      

  3.   

    在Delphi中我是这样定义的function getbytes(nm:pchar;var nm2:Integer;var bytes:array of byte):Integer;  请问应该怎样才能实现对bytes赋值呢
      

  4.   

    动态数组是不能在VB和DELPHI中传递的,因为这两个使用的内存管理器不同,改用传内存块的方式,而且内存块要在外部分配,里面使用。
      

  5.   

    可以在DLL中用直接赋值的办法实现比如:DLL中:
    procedure Get_CCD_Count(var Ccd: Array of Byte;WaitTime: Integer);StdCall;
    var
      i1,i2,i3,i4,i5,i6: Byte;
    begin
      asm
        
      end;
      Sleep(WaitTime);
      Ccd[0]:= i1;
      Ccd[1]:= i2;
      Ccd[2]:= i3;
      Ccd[3]:= i4;
      Ccd[4]:= i5;
      Ccd[5]:= i6;
    end;
    调用(静态):var
      im: Array[0..5] of Byte;Get_CCD_Count(im,1);
      

  6.   

    把参数var bytes:array of byte
    改为var bytes: OleVariant,然后操作OleVariant就可以很好地跟VB交互了
    VB当中声明为 byref Bytes as Variant
      

  7.   

    谢谢unsigned 搞定 不好意思 这几天请假 没上 刚刚结贴 谢谢了