正确初始化HKEY数组

时间:2013-06-04 10:50:42

标签: windows registry handle

如何有效地初始化HKEY数组?

请考虑以下代码段

HKEY hkey[2];

for(int i = 0 ; i < 2 ; i++)

LONG reval = RegOpenKeyEx(/* parameters */,&hkey[i]);

RegOpenKeyEx()将根据我传递的参数填充数组。但是,初始化HKEY数组的最佳方法是什么?我找不到任何关于相同的msdn文档。

HKEY hkey[2] = {0 }; ????

是否足够好

1 个答案:

答案 0 :(得分:2)

您无需初始化阵列。您可以让RegOpenKeyEx设置值。在调用RegOpenKeyEx之前,您无需将它们分配给任何内容。该文档指出HKEY参数具有语义,因此不使用其输入值。

您必须执行错误检查,以确保检测到该函数已失败,因此请勿使用未初始化的值。

这样做不会有害

HKEY hkey[2] = { NULL, NULL };
在致电RegOpenKeyEx之前

。但只要您对RegOpenKeyEx的调用执行正确的错误检查,就无法成功完成该函数并且不能分配给HKEY参数。