다음 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