Tesla.Angela 发表于 2011-1-17 22:33:58

第一期活动:类型马甲知多少【参与送分】


NTSTATUS
HANDLE
DWORD
BYTE

太多了。。。简直无法枚举。。。
比如NTSTATUS就是long,BYTE就是unsigned char。
每爆一个马甲加10水晶币,多劳多得。。。
举例:
NTSTATUS <--> long
2011-1-19补充:
必须剥去类型所有的马甲!!!
比如DWORD是ULONG的马甲,但是ULONG本身也是马甲,而DWORD剥去所有的马甲是unsigned long!!!

Xor 发表于 2011-1-18 21:26:17

本帖最后由 Xor 于 2011-1-18 21:28 编辑

这个主意不错,支持一下。
我应该把windef的内容都复制下来,不过太多了,所以挑了一些。
typedef WORD                ATOM;

typedef HANDLE NEAR         *SPHANDLE;
typedef HANDLE FAR          *LPHANDLE;
typedef HANDLE            HGLOBAL;
typedef HANDLE            HLOCAL;
typedef HANDLE            GLOBALHANDLE;
typedef HANDLE            LOCALHANDLE;
以上都是马甲
还有
typedef struct tagRECT
{
    LONG    left;
    LONG    top;
    LONG    right;
    LONG    bottom;
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;

typedef const RECT FAR* LPCRECT;

typedef struct _RECTL       /* rcl */
{
    LONG    left;
    LONG    top;
    LONG    right;
    LONG    bottom;
} RECTL, *PRECTL, *LPRECTL;

typedef const RECTL FAR* LPCRECTL;

typedef struct tagPOINT
{
    LONGx;
    LONGy;
} POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;

typedef struct _POINTL      /* ptl*/
{
    LONGx;
    LONGy;
} POINTL, *PPOINTL;

typedef struct tagSIZE
{
    LONG      cx;
    LONG      cy;
} SIZE, *PSIZE, *LPSIZE;

typedef SIZE               SIZEL;
typedef SIZE               *PSIZEL, *LPSIZEL;

typedef struct tagPOINTS
{
#ifndef _MAC
    SHORT   x;
    SHORT   y;
#else
    SHORT   y;
    SHORT   x;
#endif
} POINTS, *PPOINTS, *LPPOINTS;


typedef struct _FILETIME {
    DWORD dwLowDateTime;
    DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;
数数多少个,我发财了!

Xor 发表于 2011-1-18 21:39:57

整理一下:
WORD<-->ATOM;
HANDLE<-->*SPHANDLE;
HANDLE<--> *LPHANDLE;
HANDLE<-->HGLOBAL;
HANDLE<-->HLOCAL;
HANDLE<-->GLOBALHANDLE;
HANDLE<-->LOCALHANDLE;
tag<-->RECTRECT<-->*PRECT<--> *NPRECT<--> *LPRECT;
const<-->RECT<-->FAR* LPCRECT;
_RECTL<-->RECTL<--> *PRECTL<--> *LPRECTL;
const<-->RECTL<-->FAR* LPCRECTL;
tagPOINT<-->POINT<--> *PPOINT<-->*NPPOINT<-->*LPPOINT;
_POINTL <-->POINTL<--> *PPOINTL;
tagSIZE<-->SIZE<--> *PSIZE<--> *LPSIZE;
SIZE<-->SIZEL;
SIZE<-->*PSIZEL<--> *LPSIZEL;
tagPOINTS<-->POINTS<--> *PPOINTS<--> *LPPOINTS;
_FILETIME<-->FILETIME<--> *PFILETIME<--> *LPFILETIME;
我是用的“查找替换”功能,难免有误,请见上文

ok100fen 发表于 2011-1-22 15:45:50

NTSTATUS <--> long

?????

马大哈 发表于 2011-1-25 13:16:37

......所以这就是我讨厌C的地方.....:Q

因此之前要写DLL和驱动,我宁愿用MASM......直接就是相应的BYTE啊DWORD多方便!

Tesla.Angela 发表于 2011-1-29 01:07:07

回复 马大哈 的帖子

你可以不理会马甲啊!!!
比如我基本都把NTSTATUS写成long。

马大哈 发表于 2011-1-31 00:06:25

还好我现在只偶尔写写C51的程序,基本上与汇编的类型一致,就没那么头大了.
页: [1]
查看完整版本: 第一期活动:类型马甲知多少【参与送分】