Почему, когда я wprintf мои pvData, я получаю много знаков вопроса в моей консоли?(pvData поступает из RegGetValue) И как мне это исправить? - PullRequest
0 голосов
/ 31 мая 2018

Здравствуйте, это часть моего кода

WCHAR pvData[MAX_PATH];
DWORD dataLength = sizeof(pvData);

long checkGET = RegGetValue(hkey, NULL, NULL, RRF_RT_REG_SZ | RRF_RT_REG_MULTI_SZ, NULL, &pvData, &dataLength); 
cout << "LAST ERROR(6): " << GetLastError() << endl;
cout << "checkGET: " << checkGET << endl;
wprintf(L"\n%s\n\n", pvData);

wprintf (L "\ n% s \ n \ n", вывод);---> это дает мне вывод множества "?????? ...". Я хотел бы иметь возможность распечатать выходную информацию и позже сохранить ее как строковый тип данных.

Я новичок в этом извините, помощь приветствуется.Большое спасибо.

Добавлено позже:

Я смог распечатать информацию из этой функции, используя этот способ,

    DEVPROPKEY devpropkey;
    DEVPROPTYPE devproptype;
    DWORD requiredSize;

    bool checkPROP1 = SetupDiGetDeviceProperty(classDevs, &devData, &devpropkey, &devproptype, NULL, 0, &requiredSize, 0); 
    bool checkPROP2 = SetupDiGetDeviceProperty(classDevs, &devData, &devpropkey, &devproptype, (PBYTE)&requiredSize, sizeof((PBYTE)&requiredSize), &requiredSize, 0); 

    TCHAR szDeviceInstanceID[MAX_DEVICE_ID_LEN];
    CONFIGRET status = CM_Get_Device_ID(devData.DevInst, szDeviceInstanceID, MAX_PATH, 0);
    wcout << "Device Instance ID: " << szDeviceInstanceID << endl;

Вероятно, неправильно использовать TCHAR, и, вероятно, следует использовать WCHARвместо этого.

1 Ответ

0 голосов
/ 01 июня 2018

Я понял свою проблему.

LONG WINAPI RegGetValue(
 _In_        HKEY    hkey,
 _In_opt_    LPCTSTR lpSubKey,
 _In_opt_    LPCTSTR lpValue,
 _In_opt_    DWORD   dwFlags,
 _Out_opt_   LPDWORD pdwType,
 _Out_opt_   PVOID   pvData,
 _Inout_opt_ LPDWORD pcbData
);

Я сделал lpValue равным NULL.Следовательно я получаю ошибки 2 и 1168 все время.После присвоения lpValue фактического значения реестра я смог получить свои GUID.

В моем случае lpValue был "DeviceInterfaceGUIDs".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...