为什么程序集中的结构声明与win32 api文档中的结构声明不同.(我来自c ++并尝试使用汇编语言)
例如我从icezelion的教程中获得了这个函数原型(tutorial3)
WNDCLASSEX STRUCT DWORD
cbSize DWORD ?
style DWORD ?
lpfnWndProc DWORD ?
cbClsExtra DWORD ?
cbWndExtra DWORD ?
hInstance DWORD ?
hIcon DWORD ?
hCursor DWORD ?
hbrBackground DWORD ?
lpszMenuName DWORD ?
lpszClassName DWORD ?
hIconSm DWORD ?
WNDCLASSEX ENDS
Run Code Online (Sandbox Code Playgroud)
嘿等等......我知道"WNDCLASSEX"结构,在我的win32 api文档的离线版本中,它声明为....
typedef struct _WNDCLASSEX { // wc
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HANDLE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
HICON hIconSm;
} WNDCLASSEX;
Run Code Online (Sandbox Code Playgroud)
为什么asm版本使用DWORD只与win32 api文档中的内容相反?
我使用的是错误的文档还是什么?如果我可以有人给我发布WIN32 api文档的下载链接意味着asm程序员?
帮忙,很困惑.
编辑:这是我参考的教程的链接:
汇编语言是无类型的 - DWORD和其他关键字仅表示应为特定实体保留的字节数.实际上,由于DWORD及其表兄弟不代表操作码/助记符,因此它们实际上是宏预处理器的功能.
与其他语言类似的C/C++类型受到诸如endian-ness之类的规则的约束,其中符号位,转换,转换和赋值是可能的等等.您提供的C版本的结构比汇编语言版本,但兼容.