如何有效地初始化HKEY
数组?
请考虑以下代码段
HKEY hkey[2];
for(int i = 0 ; i < 2 ; i++)
LONG reval = RegOpenKeyEx(/* parameters */,&hkey[i]);
RegOpenKeyEx()
将根据我传递的参数填充数组。但是,初始化HKEY数组的最佳方法是什么?我找不到任何关于相同的msdn文档。
做HKEY hkey[2] = {0 };
????
答案 0 :(得分:2)
您无需初始化阵列。您可以让RegOpenKeyEx
设置值。在调用RegOpenKeyEx
之前,您无需将它们分配给任何内容。该文档指出HKEY
参数具有语义,因此不使用其输入值。
您必须执行错误检查,以确保检测到该函数已失败,因此请勿使用未初始化的值。
这样做不会有害
HKEY hkey[2] = { NULL, NULL };
在致电RegOpenKeyEx
之前。但只要您对RegOpenKeyEx
的调用执行正确的错误检查,就无法成功完成该函数并且不能分配给HKEY
参数。