Я пытался наблюдать подсистему USB, чтобы определить, когда устройства добавляются или удаляются, но у меня возникают проблемы с декодированием поля PDEV_BROADCAST_DEVICEINTERFACE::dbcc_name
. Мой код основан на пример над codeproject .
Если я щелкну правой кнопкой мыши в своем приложении C ++ / CLI в Visual Studio и перейду к объявлению в Dbt.h
, я получу:
typedef struct _DEV_BROADCAST_DEVICEINTERFACE_W {
DWORD dbcc_size;
DWORD dbcc_devicetype;
DWORD dbcc_reserved;
GUID dbcc_classguid;
wchar_t dbcc_name[1];
} DEV_BROADCAST_DEVICEINTERFACE_W, *PDEV_BROADCAST_DEVICEINTERFACE_W;
Что говорит о том, что имя должно быть wchar_t
. Передача этого в новую System :: String просто дает случайные символы. Есть ли что-то еще для преобразования строки wchar_t?
[edit] По сути, я хочу сделать this в C ++ - cli, но как мне это перенести?