我得到一些"使用旧式演员"的警告我想摆脱,但我对此并不了解.
编辑:
HKEY_CURRENT_USER确实在WinAPI中定义,所以我将单独留下一个.
(LPBYTE)&result:LPBYTE(&result)和reinterpret_cast<LPBYTE>(&result)工作,但我不知道是否相同.那么我使用这三个中的哪一个?
(const BYTE*)&value:reinterpret_cast<const BYTE*>(&value)工作,但同样的事情.那么我使用这两个中的哪一个?
更多背景:
HKEY hKey;
std::string sResult = "";
if(regOpenKey(KEY_READ, &hKey))
{
DWORD size=1024, type = REG_SZ;
wchar_t result[MAX_PATH];
if(RegQueryValueEx(hKey, key, nullptr, &type, (LPBYTE)&result, &size) == ERROR_SUCCESS)
sResult = str_narrow(result);
}
RegCloseKey(hKey);
Run Code Online (Sandbox Code Playgroud)
和:
HKEY hKey;
if(regOpenKey(KEY_ALL_ACCESS, &hKey))
{
DWORD value = 1;
RegSetValueEx(hKey, key, 0, REG_DWORD, (const BYTE*)&value, sizeof(value));
}
RegCloseKey(hKey);
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助 :)
HKEY_CURRENT_USER是在 WinAPI 中定义的,所以不要管它。它可能会在没有警告的情况下发生变化(虽然不太可能,但有可能)。
(LPBYTE)&result: LPBYTE(&result)有效,但同样,我不知道它是否等效。
是的,是一样的。
(const BYTE*)&value: reinterpret_cast<const BYTE*>(&value)有效,但又是同样的事情。
又一样。
| 归档时间: |
|
| 查看次数: |
1349 次 |
| 最近记录: |