Sha*_*yar 2 c++ registry winapi
可能重复:
如何比较字符串
我想要比较注册表字符串值,如果它们是相同的,则出现一个消息框
目前我正在使用这个函数,它正确返回值但是每当我想比较它们时,比较结果总是错误的
char* GetRegistry(char* StringName)
{
DWORD dwType = REG_SZ;
HKEY hKey = 0;
char value[1024];
DWORD value_length = 1024;
const char* subkey = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\MCI\\Player";
RegOpenKey(HKEY_LOCAL_MACHINE,subkey,&hKey);
RegQueryValueEx(hKey, StringName, NULL, &dwType, (LPBYTE)&value, &value_length);
return value;
}
Run Code Online (Sandbox Code Playgroud)
我用它来比较它们
if (GetRegistry("First") == GetRegistry("Second"))
{
MessageBox(NULL,":|",":|",1);
}
Run Code Online (Sandbox Code Playgroud)
但是MessageBox出现了如何不同的值
任何帮助表示赞赏.
通过使用std::string,比较将按预期运行.这也将修复该函数返回指向本地缓冲区的指针的另一个错误.
std::string GetRegistry(const char* StringName)
{
....
return std::string(value);
}
Run Code Online (Sandbox Code Playgroud)