windows api参数说明符前缀详解

        使用MASM写Windows程序,其实就是和WindowsAPI打交道,而一个人是不可能记住所有的API用法的,所以API参考手册是必不可少的,API的参考手册中函数原型是按匈牙利表示法表示的,下面这个表就是API原型中那些前缀的详细解释,希望对初学者有帮助。 

         资料来源:MicroSoft MSDN Platform SDK 参考 

a Array 数组  
b BOOL (int) 布尔(整数)  
by Unsigned Char (Byte) 无符号字符(字节) 
c Char 字符(字节)  
cb Count of bytes 字节数  
cr Color reference value 颜色(参考)值 
cx Count of x (Short) x的集合(短整数)  
dw DWORD (unsigned long) 双字(无符号长整数)  
f Flags (usually multiple bit values) 标志(一般是有多位的数值) 
fn Function 函数 
g_ global 全局的 
h Handle 句柄 
i Integer 整数 
l Long 长整数  
lp Long pointer 长指针  
m_ Data member of a class 一个类的数据成员 
n Short int 短整数 
p Pointer 指针 
s String 字符串  
sz Zero terminated String 以0结尾的字符串 
tm Text metric 文本规则 
u Unsigned int 无符号整数  
ul Unsigned long (ULONG) 无符号长整数 
w WORD (unsigned short) 无符号短整数  
x,y x, y coordinates (short) 坐标值/短整数 
v void 空  


------------------------------------------------------------------------------------------------------------------------------------------

比如说API函数CreateWindowsEx,API原型如下:

 HWND CreateWindowEx(  DWORD dwExStyle, // extended window style 

                                                  LPCTSTR lpClassName, // pointer to registered class name

                                                  LPCTSTR lpWindowName, // pointer to window name 

                                                  DWORD dwStyle, // window style 

                                                  int x, // horizontal position of window

                                                  int y, // vertical position of window 

                                                  int nWidth, // window width 

                                                  int nHeight, // window height

                                                  HWND hWndParent, // handle to parent or owner window  

                                                  HMENU hMenu, // handle to menu, or child-window identifier 

                                                  HINSTANCE hInstance, // handle to application instance 

                                                  LPVOID lpParam // pointer to window-creation data );  


         那么根据上述前缀表可以得出,dwExStyle需要一个双字值,lpClassName与lpWindowName需要一个指向字符串的长指针(在MASM中则是偏移地址),x、y表示需传递整数值,nWidth与nHeight表示传递短整数,hWndParent表示需要一个窗口句柄,hMenu表示传递一个菜单句柄,hInstance表示传递的是程序实例句柄,lpParam表示可以传递长指针(地址)。 

         注意看前缀时请不要看前面的类型说明符,而是要看词的前缀,如DWORD dwExStyle,只需要看dwExStyle就知道传递的是双字数。  另外还有其它的组合,只要稍注意就能行,比如说lpfn表示指向函数的长指针,在MASM中则是一个函数的地址,,还有像lpSecurityAttributes之类的,则是指向SECURITY_ATTRIBUTES结构的长指针(址),lpvBuffer表示传递一个缓存(Buffer)长指针(lp)或者为空(void),还有一些没有前缀的则是这个词已经足够说明它的意思了。

          等等,熟悉这些前缀的含义可以让你在学习API的时候进行快速的掌握。并能排除一些错误。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值