dll 函数原型:
int Hello(unsigned char *xx, int iBuffLen, int *ipBuffLen);delphi中该如何:
function Hello(xx:array of byte; iBuffLen:integer; var ipBuffLen:integer):integer;stdcall;external 'xxx.dll';
这样对吗?

解决方案 »

  1.   

    function Hello(xx:PChar; iBuffLen:integer; var ipBuffLen:Pinteger):integer;stdcall;external 'xxx.dll';
      

  2.   

    1. C/C++ 的unsigned char,转换成Delphi是byte
    2. 楼主的翻译没有问题
    3. 如果delphi不能正常调用dll,检查一下C/C++是不是使用stdcall的调用约定。
      

  3.   

    function Hello(xx:PChar; iBuffLen:integer;ipBuffLen:pInteger):integer;stdcall;external 'xxx.dll';
      

  4.   

    function Hello(xx:pByte; iBuffLen:integer;ipBuffLen:pInteger):integer;stdcall;external 'xxx.dll';
      

  5.   


    PByte=^Byte;这样没有问题,得到byte数组。传入参数是:
    var
    xx:array of byte;@xx[0]谢谢各位了。