TRegistry的GetKeyNames方法返回值异常问题求助
C++Builder中TRegistry::GetKeyNames获取子键名称异常问题
我尝试用以下代码读取注册表中的子键列表,TRegistry::GetKeyNames接收TStringList对象后,该对象的计数显示为3(正确数值),但无法获取到子键名称:
TRegistry *pRegistry = new TRegistry(KEY_READ); pRegistry->RootKey = HKEY_LOCAL_MACHINE; pRegistry->OpenKeyReadOnly(L"\SOFTWARE\Ogre\Fasthole"); TStringList *subkeyNames = new TStringList(); pRegistry->GetKeyNames(subkeyNames); UnicodeString ALICE = subkeyNames->Names[0];
ALICE始终为NULL。
更新
原项目基于C++Builder 12.1 Athens开发,我新建项目并导入原有窗体升级到12.2后,问题仍存在。进一步测试发现:
TStringList *subkeys = new TStringList(); pRegistry->GetKeyNames(subkeys); UnicodeString RALPH = subkeys->Strings[0]; // <--- 失败 UnicodeString ALICE = subkeys->Strings[1][1]; // <--- 同样失败 wchar_t NORTON = subkeys->Strings[0][1]; // <--- 成功 wchar_t TRIXIE = RALPH[1]; // <--- 也成功!!!
直接获取UnicodeString值时均返回NULL,虽然单个字符可以通过临时方式读取,但这显然不符合预期。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

