我正在尝试使用以下代码来获取注册表中的子项列表。 GetKeyNames 接受一个 TString 对象。返回后,TStringList 对象的计数为 3,这是正确的计数。然而,虽然 TStringList 有正确的计数,但它似乎没有名称。这可能是很简单的事情,但我一直没能发现问题所在。
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。
您需要使用
TStringList
的 Strings[]
属性而不是 Names[]
属性。