C++:
typedef struct dx_uio {
   int (* u_read)();       /* User Defined replacement for read() */
   int (* u_write)();      /* User Defined replacement for write() */
   long (* u_seek)();       /* User Defined replacement for lseek() */
} DX_UIO;Pascal:
DX_UIO = record
  u_read = function(): integer;   
  u_write = function(): integer;
  u_seek = function(): longint; 
end; 编译不通过,请问各位大侠上面的函数指针(不带参数)怎样转成pascal语言啊?如果代参数,好像就不会错,不太熟悉,请指教!

解决方案 »

  1.   

    2。C++:
    typedef struct ct_devinfo
    {
       unsigned long  ct_prodid;
       unsigned char  ct_devfamily;
       unsigned char  ct_devmode;
       unsigned char  ct_nettype;
       unsigned char  ct_busmode;
       unsigned char  ct_busencoding;
       union { 
         unsigned char ct_RFU[7];
    struct {
    unsigned char ct_prottype;
              } ct_net_devinfo;
       } ct_ext_devinfo;} CT_DEVINFO; 下面这段是我转的,也报错,请帮忙看看:  ct_net_devinfo = record
        ct_prottype: Byte;
      end;  CT_DEVINFO = record
        ct_prodid: LongWord;                                       
        ct_devfamily: Byte;                                        
        ct_devmode: Byte;                                          
        ct_nettype: Byte;                                          
        ct_busmode: Byte;                                          
        ct_busencoding: Byte;                                            Case Integer of
        0: (ct_RFU: array[0..(7-1)] of Byte); //这句出错
        1: (ct_net_devinfo: ct_net_devinfo);
      end;
      

  2.   

    type
      Tu_read = function(): integer;
      Tu_write = function(): integer;
      Tu_seek = function(): longint;  DX_UIO = record
        a:Tu_read;
        b:Tu_write;
        c:Tu_seek;
      end;
      

  3.   

    也许c++定义成这样
    typedef int(* u_read)();
    typedef int(* u_write)();
    typedef int(* u_seek)();typedef struct dx_uio {
       u_read pu_read;       /* User Defined replacement for read() */
       u_write pu_write;      /* User Defined replacement for write() */
       u_seek pu_seek;;       /* User Defined replacement for lseek() */
    } DX_UIO; 
    你就知道为什么delphi定义成那样了
      

  4.   

    DX_UIO = record
      u_read: function(): integer;
      u_write: function(): integer;
      u_seek: function(): longint;
    end;
      

  5.   

    1.
    DX_UIO = record
      u_read: function(): integer;   
      u_write: function(): integer;
      u_seek: function(): longint; 
    end; 2.
        0: (ct_RFU: array[0..(7-1)] of Byte); //这句出错在我这里没有出错,你说说是什么错误信息。