读取注册表数据怎么总出现内存问题?
class CRegEdit
{
private:
HKEY hKey;
public:
CRegEdit();
~CRegEdit();
void CreateKey(HKEY, TCHAR *);
void OpenKey(HKEY, TCHAR *);
void SetKeyValue(TCHAR *, TCHAR *);
void GetKeyValue(TCHAR *, TCHAR *, int);
};
CRegEdit::CRegEdit()
{
}
CRegEdit::~CRegEdit()
{
RegCloseKey(hKey);
}
void CRegEdit::CreateKey(HKEY hKeyStyle, TCHAR *pszKeyName)
{
RegCreateKey(hKeyStyle, pszKeyName, &hKey);
}
void CRegEdit::OpenKey(HKEY hKeyStyle, TCHAR *pszKeyName)
{
RegOpenKey(hKeyStyle, pszKeyName, &hKey);
}
void CRegEdit::SetKeyValue(TCHAR *pszKeyName, TCHAR *pszKeyValue)
{
RegSetValueEx(hKey, pszKeyName, 0, REG_SZ, (LPBYTE)pszKeyValue, strlen(pszKeyValue));
}
void CRegEdit::GetKeyValue(TCHAR *pszKeyName, TCHAR *pszKeyValue, int nSize)
{
//怎么在运行下面这句时总是出现内存问题
RegQueryValueEx(hKey, pszKeyName, 0, 0, (LPBYTE)pszKeyValue, (LPDWORD)nSize);
}
void SetRegEdit()
{
CRegEdit RegEdit;
TCHAR szOldKeyValue[256];
RegEdit.OpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
RegEdit.GetKeyValue(“eye”, szOldKeyValue, sizeof(szOldKeyValue));
}