typedef uint32 __stdcall FNPDFIO( int16 nCmd, uint8 far * lpBufIO, uint16 nBytes, void FAR * lpGeneric );
typedef FNPDFIO FAR *LPFNPDFIO;typedef struct s_pdfobject{
   uint16 ioType;            
   uint16 ioDirection;      
   uint32 nLen;               union {
      uint8 far * lpMemBuffer;
      struct {
         LPFNPDFIO lpfnCallback;
         void FAR * lpAppArg;
      } func;
      struct {
         HANDLE hFile;
         LONG nInitPos;
         Bool fMustClose;
      } file;
      struct {
         uint8 far * lpMem;     
         uint16 fmtOutput;  
      } clip;
   } access;
   Bool fIsHuge;
   void FAR * lpState;       } PDFObject;

解决方案 »

  1.   

    说实话,这个结构定义的很变态,头两句就是定义一个函数指针而已。把类型和Delphi的类型对调就可以了,后面的结构体内部又包含了联合,翻译起来打字太多了,楼主自己翻译一下吧,用到的东西就那么点,但是打字就太多了点
      

  2.   

    楼上的帮帮忙啊,我知道union的意思是指里面的成员占用同一块内存,其大小为最大的成员的大小,这里是不是 struct file的大小啊,如果是,我在Pascal里是不是定义使用这样一个结构就可以代替这个union了?试了半天,不管怎么定义,在调用dll的函数时,传递这个结构总是不对.