我正在使用Visual Studio 2008.我正在使用vC++ mfc应用程序。
我想知道如何从注册表中读取多行字符串值。这里的类型REG_MULTI_SZ
指示由空字符串(\ 0)终止的以空字符结尾的字符串序列。
到目前为止,我只能阅读第一行。给我想法,我如何一次读取多个字符串。
感谢 如何在Visual C++中读取多行多字符串注册表项?
我想这样的事情
HKEY hKey;
CString RegPath = _T("SOFTWARE\\...\\...\\"); //Path
if(ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,RegPath,0,KEY_READ|KEY_ENUMERATE_SUB_KEYS|KEY_QUERY_VALUE | KEY_WOW64_64KEY,&hKey))
{
DWORD nBytes,dwType = REG_MULTI_SZ;
CString version;
if(ERROR_SUCCESS == ::RegQueryValueEx(hKey,_T("Options"),NULL,&dwType,0,&nBytes))
{
ASSERT(REG_MULTI_SZ == dwType);
LPTSTR buffer = version.GetBuffer(nBytes/sizeof(TCHAR));
VERIFY(ERROR_SUCCESS == ::RegQueryValueEx(hKey,_T("Options"),NULL,0,(LPBYTE)buffer,&nBytes));
AfxMessageBox(buffer); //Displaying Only First Line
version.ReleaseBuffer();
}
::RegCloseKey(hKey);
}
显示你有什么到目前为止已经试过。然后,我们会更容易回答你的问题。 – 2014-10-28 08:36:02