VC中的函数原型如下:
unsigned WINAPI getID(
     HANDLE myhandle,
 unsigned char len,
 unsigned char *name,
               unsigned char *ret,
 unsigned char *myresult);  其中myhandle,len和name是传给函数的数据, ret和myresult是函数要返回的数据,请问各位大虾,在delphi中该如何声明并调用?谢谢.

解决方案 »

  1.   

    function getID(
             myhandle: THANDLE,
    len: BYTE,
    name: PBYTE,
             ret: PBYTE,
    myresult: PBYTE
    ):DWORD; stdcall;似乎是这样。
      

  2.   

    那么string类型的Name怎么传到函数里呢?
    返回的myresult怎么转成string类型的呢?
      

  3.   

    简单点
    function getID(
             myhandle: THANDLE,
    len: BYTE,
             var
    name, ret,
    myresult: PChar
    ):DWORD; stdcall;
    这样的声明你看的懂了吧,知道如何把string数据放进来了吧!知道如何获得返回值了吧。
      

  4.   

    可以直接传string
    转换也可以直接转换或者用setstring函数
      

  5.   

    串文件名用Pchar;vc不认识string
      

  6.   

    OK,谢谢各位啦:)
    我的声明如下(通过):
    function getID(
        myHandle:Integer;
        len:byte; 
        name:pchar;
        ret:pchar ; 
        myresult:pchar
       ): Integer;
     stdcall; external 'XXX.dll';
    传char参数时,我直接用'字符串'传进去的,也可以用array[1..n] of char,pchar等传进去.