草庐IT

RegEnumValue

全部标签

windows - RegEnumValue 在 Vista 兼容模式下返回不同的缓冲区大小

当我的应用程序在“WindowsVista兼容模式”下运行时,我遇到了一个非常奇怪的问题(右键单击EXE,启用兼容模式并选择windowsvista)。问题是来自“RegEnumValue”函数的返回缓冲区长度值返回不同的值。例如,注册表值为“ZoomPlayerMAX”(15个字符):禁用兼容模式后,RegEnumValue的“lpcbData”字段返回值16(包括结尾的空终止符)。启用兼容模式后,RegEnumValue的“lpcbData”字段返回值15(不包括结尾的空终止符)。是否有不需要更改我的字符串转换代码的解决方法/补丁? 最佳答案

C++ RegEnumValue() - 无法迭代到每个值

我想获取特定键路径下的所有注册表值,但RegEnumValue()总是返回错误代码259作为ERROR_NO_MORE_ITEMS并且sectionValue具有无意义的值。我手动检查注册表,在指定的键下有值。例如。关键是MyTestApp键值为ManualTestCase=10关键值为AutomationTestCase=50HKEYhKey;//registrykeyhandleLONGlResult;//resultofregistryoperationsDWORDdwType,dwSize=0;//trytoopenthekeythatwearecurrentlypointin