:
typedef unsigned long DWORD;
我认为DWORD,WORD ...是计算机中的基本数据类型,无论是int,unsigned long ......它最终会在汇编中转换为DWORD,为什么要在这里转换为unsigned long?如果没有定义,我不能直接使用DWORD吗?
答案 0 :(得分:1)
DWORD是它定义的任何内容(没有自动转换为程序集中的特定宽度)。需要此typedef,因为在使用DWORD的地方,WinAPI接口都使用unsigned long定义。 IOW,您需要使用此定义来使用API。
回答你的其他问题。这个答案是否定的,没有定义就不能使用DWORD。它不是编译器的内置类型。
对于Win32 API,DWORD的定义是固定的:http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx
答案 1 :(得分:1)
在Windows API和基于x86指令集的汇编语言中,DWORD指定一个大小为32位的变量。所以是的,它通常是相同的大小。
在没有定义C ++的情况下,不能在C ++中使用类型DWORD
,因为它不是核心语言的一部分。 DWORD
的类型定义可能需要根据您的编译器和系统架构进行调整。显然,对于您的配置,类型unsigned long
有32位,因此DWORD定义为unsigned long
。