Russian Qt Forum
Ноябрь 24, 2024, 11:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Проблема с SetupDiGetClassDevs  (Прочитано 12869 раз)
sweaty
Гость
« : Июнь 03, 2014, 11:29 »

Код:
#include <Windows.h>
#include <SetupAPI.h>
#include <devguid.h>

DEFINE_GUID(GUID_DEVCLASS_DISPLAY,0x4d36e968,0xe325,0x11ce,0xbf,0xc1,0x08,0x00,0x2b,0xe1,0x03,0x18);

HDEVINFO hDevInfo;
 hDevInfo =SetupDiGetClassDevs(&GUID_DEVCLASS_DISPLAY ,NULL, NULL, DIGCF_PRESENT|DIGCF_ALLCLASSES );


возникает ошибка undefined reference to `GUID_DEVCLASS_DISPLAY'
кто сталкивался с таким, и что может быть проблемой?

Задача в том, что бы по GUIDу определить устройство (вывести его название)
Подскажите, что может быть?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Июнь 03, 2014, 11:31 »

Вы, видимо, забыли приинклудить что то Улыбающийся
В каком то заголовочном описан GUID_DEVCLASS_DISPLAY
Записан

sweaty
Гость
« Ответ #2 : Июнь 03, 2014, 11:34 »

Вы, видимо, забыли приинклудить что то Улыбающийся
В каком то заголовочном описан GUID_DEVCLASS_DISPLAY
все описано в devguid.h
проблема не в этом, он почему-то не видит вообще GUID_DEVCLASS_DISPLAY.
Я пытаюсь по заданому GUID вывести устройство. Работает, если первый параметр NULL, тогда выводит все устройства всех гуидов
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #3 : Июнь 03, 2014, 12:55 »

Если не изменяет память, то достаточно этого:

Код
C++ (Qt)
#define INITGUID // << Это добавь
#include <Windows.h>
#include <SetupAPI.h>
#include <devguid.h>
 
HDEVINFO hDevInfo = SetupDiGetClassDevs(&GUID_DEVCLASS_DISPLAY ,NULL, NULL, DIGCF_PRESENT|DIGCF_ALLCLASSES );
 

не нужно переопределять GUID_DEVCLASS_DISPLAY если он уже в системных заголовках объявлен
Записан

ArchLinux x86_64 / Win10 64 bit
sweaty
Гость
« Ответ #4 : Июнь 03, 2014, 13:22 »

Не помогло добавление #define INITGUID.
Может кто-то знает другие методы как вытащить название устройства по его GUID?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #5 : Июнь 03, 2014, 13:27 »

Ну не знаю, у меня работает это:

Код
C++ (Qt)
#define INITGUID
 
#include <qt_windows.h>
#include <setupapi.h>
 
DEFINE_GUID(GUID_BLUETOOTHLE_DEVICE_INTERFACE,          0x781aee18, 0x7733, 0x4ce4, 0xad, 0xd0, 0x91, 0xf4, 0x1c, 0x67, 0xb5, 0x92);
DEFINE_GUID(BTH_LE_ATT_BLUETOOTH_BASE_GUID,             0x00000000, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
 
Записан

ArchLinux x86_64 / Win10 64 bit
sweaty
Гость
« Ответ #6 : Июнь 03, 2014, 13:36 »

а Вы тоже используете эту функцию?
SetupDiGetClassDevs(&GUID_DEVCLASS_CDROM ,NULL, NULL, DIGCF_PRESENT|DIGCF_ALLCLASSES );
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #7 : Июнь 03, 2014, 14:14 »

SetupDiGetClassDevs() ? Да.
Записан

ArchLinux x86_64 / Win10 64 bit
sweaty
Гость
« Ответ #8 : Июнь 03, 2014, 14:29 »

Странно...
А какой компилятор?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #9 : Июнь 03, 2014, 14:31 »

MSVC2012
Записан

ArchLinux x86_64 / Win10 64 bit
sweaty
Гость
« Ответ #10 : Июнь 03, 2014, 14:33 »

Может быть тогда проблема в моем MinGW компиляторе?
или это исключено?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #11 : Июнь 03, 2014, 14:39 »

Исключено.
Записан

ArchLinux x86_64 / Win10 64 bit
sweaty
Гость
« Ответ #12 : Июнь 03, 2014, 14:42 »

хм.. очень странно..
все подключил, а все равно не видит этот чертов GUID_DEVCLASS_CDROM  Грустный
очень обидно.
а что еще может означать эта ошибка undefined reference to `GUID_DEVCLASS_CDROM' ??
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #13 : Июнь 03, 2014, 14:46 »

может библиотека не подключена какая-нить?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #14 : Июнь 03, 2014, 15:27 »

может библиотека не подключена какая-нить?
this. Скорее всего не подключена библиотека libuuid.a или ее аналог (uuid.lib?) в msvs
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.103 секунд. Запросов: 23.