加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows API保留参数

发布时间:2020-12-14 02:55:34 所属栏目:Windows 来源:网络整理
导读:我想知道为什么有些函数有一些参数必须设置为NULL,因为“保留参数”.例如: LONG WINAPI RegQueryValueEx( __in HKEY hKey,__in_opt LPCTSTR lpValueName,__reserved LPDWORD lpReserved,__out_opt LPDWORD lpType,__out_opt LPBYTE lpData,__inout_opt LPDW
我想知道为什么有些函数有一些参数必须设置为NULL,因为“保留参数”.例如:

LONG WINAPI RegQueryValueEx(
  __in         HKEY hKey,__in_opt     LPCTSTR lpValueName,__reserved   LPDWORD lpReserved,__out_opt    LPDWORD lpType,__out_opt    LPBYTE lpData,__inout_opt  LPDWORD lpcbData
);

我不明白为什么lpReserved存在?我的意思是,如果它保留了为什么要放它,直接省略它会不会更简单?

谢谢! :)(请不要理解我的英语..)

解决方法

我看到至少有两个原因.

一个是该参数保留供将来使用和可能的功能扩展.确保将其设置为NULL可以在某种程度上保证在将来添加新功能时,它不会破坏旧程序.

第二个可能的原因是该参数实际上可以在内部用作私有API的一部分,API的公共部分指示将此参数设置为NULL.

为什么不完全省略它?以后在不改变界面的情况下扩展系统功能会容易得多.它保持二进制和源代码与旧API兼容,并且不需要重建旧软件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读