c++注册表未获取第二个值
c++ registry not getting second value
为什么不起作用?第一个RegGetValue将正确的值放入value变量中,第二个没有,但是,如果我对第一个RegGetValue进行注释,那么第二个会起作用,并将正确的内容放入value2变量中。在第一次RegGetValue函数调用后,我尝试使用RegOpenKeyEx关闭并重新打开注册表项,但没有成功。我做错了什么
HKEY hKey = NULL;
LSTATUS res;
res=RegOpenKeyEx(HKEY_CLASSES_ROOT, "", 0, KEY_READ|KEY_WOW64_64KEY, &hKey);
if(res!=ERROR_SUCCESS)
printf("insuccesn");
else {
char value[255], value2[255];
memset(value,0,255);
memset(value2,0,255);
DWORD BufferSize = BUFFER;
RegGetValue(hKey,"\.jpeg","",RRF_RT_ANY,NULL,(PVOID)&value, &BufferSize);
strcat(value,"\DefaultIcon");
RegGetValue(hKey,"jpegfile\DefaultIcon","",RRF_RT_ANY,NULL,(PVOID)&value2, &BufferSize);
printf("succes %sn",value2);
}
来自RegGetValue手册中关于最后一个参数的信息;
pcbData[in,out,optional]
指向变量的指针,该变量指定pvData参数所指向的缓冲区的大小,以字节为单位。当函数返回时,此变量包含数据的大小已复制到pvData。
换句话说,第一次调用会将BufferSize
变量的内容更改为返回的第一个值的大小,并且需要在第二次调用之前重置。
相关文章:
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- 等待整个 omp 块完成,然后再调用第二个函数
- 我想在C++中读取一些多个字符,但它永远不会读取第二个字符
- 如何按z顺序获取第二个活动窗口?
- C++使用第二个函数获取字符数组的长度
- 如何获取列表中的倒数第二个元素
- 如何获取地图中向量的第二个值?
- 从数组中获取第二个字符串
- C++ 当第二个元素为 X 时,映射获取第一个元素
- 如何从multi_index_container获取倒数第二个元素
- 如何获取输入文件的行的第二个和最后一个字符,并在C++中组成数组
- 向量C ,获取向量的第二个元素有什么问题
- c++注册表未获取第二个值
- Lua:加载第二个字符串后无法获取字段;
- 如何使用分隔符获取所有第二个字段的总和
- C++11 获取第一个(第二个等)参数的类型,类似于result_of
- 有效获取std::*_heap的第二个元素
- 正在获取生成的无需第二个查询的自动增量ID(MySQL)
- 无法使用end()获取映射的第二个字段
- 获取 4 位整数的倒数第二个值