"HKEY_LOCAL_MACHINE \ SOFTWARE \ blah \ SetupPath"로 시작하는 레지스트리 키를 CString으로 검색하고 가능한 경우이를 검색하고 싶습니다.레지스트리 키 읽기 및 쓰기. C++ MFC MBCS.
나는 RegOpenKeyEx 함수를 내가 몇 가지 설정에 필요한 것 같습니다 이것에 대한 그래서
LONG WINAPI RegOpenKeyEx(
_In_ HKEY hKey,
_In_opt_ LPCTSTR lpSubKey,
_Reserved_ DWORD ulOptions,
_In_ REGSAM samDesired,
_Out_ PHKEY phkResult
);
에 MSDN을 참조하십시오.
HKEY hKey = HKEY_LOCAL_MACHINE;
LPCTSTR lpSubKey = "SOFTWARE\blah\SetupPath";
그리고 키가 존재하는지 확인하기는
LONG res = RegOpenKeyEx(hKey, lpSubKey, 0, 0, 0);
if(res == ERROR_SUCCESS)
// The key exists
지금 키가 나는 CString을에,이 무엇을 읽을 수있는 경우 않습니다. RegQueryValueEx도 볼 수 있습니다.
LONG WINAPI RegQueryValueEx(
_In_ HKEY hKey,
_In_opt_ LPCTSTR lpValueName,
_Reserved_ LPDWORD lpReserved,
_Out_opt_ LPDWORD lpType,
_Out_opt_ LPBYTE lpData,
_Inout_opt_ LPDWORD lpcbData
);
이 기능을 호출하기 전에 설정이 필요합니다.
HKEY hKey = HKEY_LOCAL_MACHINE;
lpSubKey = "SOFTWARE\blah\SetupPath";
LPDWORD type = null;
LPDWORD data = null;
지금은
LONG res2 = RegValueQueryEX(hKey, lpSubKey, 0, type, data,0);
그럼 내가 유형을 확인할 수 있습니다 생각하고 문자열로 캐스팅 호출 할 수 있습니다?
CString regVal;
if(res2 == ERROR_SUCCESS)
if(type == REG_SZ)
if(data != null)
regVal = new CString((LPSTR)data);
모두 맞습니까? 내가 누락되었거나해야 할 일은 무엇입니까?