0
我有以下VC++代碼。如何在DWORD中聲明TCHAR的大小,在運行時不會失敗。DWORD中TCHAR數組的大小
HKEY hKey = 0;
DWORD dwType = REG_SZ;
TCHAR buf[255] = {0};
DWORD dwBufSize = sizeof(buf);
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("HARDWARE\\DEVICEMAP\\SERIALCOMM"), 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
{
auto ret = RegQueryValueEx(hKey, TEXT("\\Device\\Serial0"), 0, &dwType, (LPBYTE)buf, &dwBufSize);
...
}
那應該爲bufSize
值。下面的代碼是否仍然正確?
DWORD bufSize = sizeof(buf);
相關:'RegQueryValueEx'不保證' NULL'終止的字符串。一定要終止它。 – jww
通常,執行此操作的方法是*查詢*數據的大小,然後創建適當大小的緩衝區。 [RegQueryValueEx函數](http://msdn.microsoft.com/en-us/library/windows/desktop/ms724911(v = vs.85).aspx) – crashmstr