WAVEHDR、LPWAVEHDR、PWAVEHDR这三个的区别

到处乱用,区别是啥呢?

查了一下它们的定义呀,在VS.net下,是这么定义的

C/C++ code:

/* wave data block header */
typedef struct wavehdr_tag {
    LPSTR       lpData;                 /* pointer to locked data buffer */
    DWORD       dwBufferLength;         /* length of data buffer */
    DWORD       dwBytesRecorded;        /* used for input only */
    DWORD_PTR   dwUser;                 /* for client's use */
    DWORD       dwFlags;                /* assorted flags (see defines) */ 
   DWORD       dwLoops;                /* loop control counter */
    struct wavehdr_tag FAR *lpNext;     /* reserved for driver */
    DWORD_PTR   reserved;               /* reserved for driver */
} WAVEHDR, *PWAVEHDR, NEAR *NPWAVEHDR, FAR *LPWAVEHDR;

好吧,基本上,Windows的结构类型定义都符合这个规则,加P和LP都是一级指针,加PP是二级指针 

还有就是 P地址是正常的,NP是低地址位的,LP是32位指针的

转载于:https://my.oschina.net/u/3772013/blog/1611269

你可能感兴趣的:(WAVEHDR、LPWAVEHDR、PWAVEHDR这三个的区别)