typedef struct _WMPicture {
  LPWSTR pwszMIMEType;
  BYTE   bPictureType;
  LPWSTR pwszDescription;
  DWORD  dwDataLen;
  BYTE * pbData;
}WM_PICTURE;
请问这个在delphi中如何写?
谢谢您的帮忙。

解决方案 »

  1.   

    type
      WM_PICTURE = record
        pwszMIMEType: PWideChar;
        bPictureType: Byte;
        pwszDescription: PWideChar;
        dwDataLen: Cardinal;
        pbData: PByte;
      end;
      

  2.   

    还要加个
    type 
      WM_PICTURE = _WMPicture 
      

  3.   

    我补充一下这是delphi的写法习惯
    P开头的表示是指针,声明时不分配内存
    t开头表示是结构,声明时即分配内存
    var
     MyWM_PICTURE1,MyWM_PICTURE2: T[/color]WM_PICTURE
    begin
       ...
       MyWM_PICTURE1 := MyWM_PICTURE2; //千万别这样操作,程序不会报错,但MyWM_PICTURE1值不会改变,不会把MyWM_PICTURE2的内容复制给MyWM_PICTURE1,不会内存拷贝。什么都没变,就这样。
       ...
    end;
      

  4.   

    4楼乱讲,你看清楚是 typedef struct _WMPicture {
      LPWSTR pwszMIMEType;
      BYTE   bPictureType;
      LPWSTR pwszDescription;
      DWORD  dwDataLen;
      BYTE * pbData;
    }WM_PICTURE;而不是typedef struct _WMPicture {
      LPWSTR pwszMIMEType;
      BYTE   bPictureType;
      LPWSTR pwszDescription;
      DWORD  dwDataLen;
      BYTE * pbData;
    }* WM_PICTURE;
    根本就不是你所说的结构指针
    至于结构指针和普通指针的区别,大家都知道 
      

  5.   

    type
      _WM_PICTURE = packed record
        pwszMIMEType: PWideChar;
        bPictureType: Byte;
        pwszDescription: PWideChar;
        dwDataLen: Cardinal;
        pbData: PByte;
      end;
      WM_PICTURE = _WM_PICTURE;
      PWM_PICTURE = ^WM_PICTURE;
      

  6.   

    我只是提醒楼主在用delphi的时候要注意我所说的