Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение символического имени устройства, Чего не хватает в моем коде? 
:(
    Опции темы
BBulat
Дата 10.9.2007, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.12.2006

Репутация: нет
Всего: нет



Код

GUID *guid;
HDEVINFO hDevInfo;
SP_DEVICE_INTERFACE_DATA devInfoData;

defineGuid();
hdevinfo = setupdigetclassdevs ( guid, null, null, digcf_present | digcf_interfacedevice );
devInfoData.cbSize = sizeof(devInfoData);
setupdienumdeviceinterfaces(hdevinfo, null, guid, 0, &devinfodata);
ulong requiredlength;
setupdigetinterfacedevicedetail (hdevinfo, devinfodata, null, 0, &requiredlength, null);

psp_device_interface_detail_data devinfodetail = (psp_device_interface_detail_data)malloc(requiredlength);
devinfodetail.cbsize = sizeof(sp_device_interface_detail_data);
setupdigetinterfacedevicedetail (hdevinfo, devinfodata, devinfodetail, requiredlength, &requiredlength, null); 


Проблема в том, что компилятор выдает следующего типа ошибки:
error C2065: 'HDEVINFO' : undeclared identifier
error C2065: 'hDevInfo' : undeclared identifier

"Необъявленный идентификатор" для всех классов и их объектов, кроме GUID. Надо подключить какой-то заголовочный файл? Если да, то подскажите, пожалуйста, какой. Или проблема в другом?

Заранее благодарен!


PM MAIL   Вверх
akizelokro
Дата 10.9.2007, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



Я полазил по хелпам Борланда и MSDN (для своего бета релиза). Нигде ничего кроме GUID, тоже не нашел.
Судя по виду сообщений компилера, работаешь ты с M.
IMHO. Да, надо подключить заголовочный файл. Какой, не знаю. Там, где ты берешь вышеперечисленные функции, должно быть указать.
 smile если не написано, подключай все заголовочные файлы, которые есть у тебя в компе. ЗЫ, а это идея!


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
W4FhLF
Дата 10.9.2007, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



SetupAPI.h


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
BBulat
Дата 10.9.2007, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.12.2006

Репутация: нет
Всего: нет



Подключив SetupApi.h ряд ошибок исчезло, но некоторые вещи компилятор всеравно не понимает. Сообщение об ошибках
смотрите после кода.

Код

GUID *guid;
HDEVINFO hDevInfo;
SP_DEVICE_INTERFACE_DATA devInfoData;

defineGuid(); 

hDevInfo = SetupDiGetClassDevs ( guid, NULL, NULL, DIGCF_PRESENT|DIGCF_INTERFACEDEVICE);        
devInfoData.cbSize = sizeof(devInfoData);
SetupDiEnumDeviceInterfaces(hDevInfo, NULL, guid, 0, &devInfoData);

unsigned long requiredlength;
SetupDiGetInterfaceDeviceDetail (hDevInfo, devInfoData, NULL, 0, &requiredlength, NULL); 

SP_DEVICE_INTERFACE_DETAIL_DATA_DEVINFODETAIL devinfodetail = (SP_DEVICE_INTERFACE_DETAIL_DATA)malloc(requiredlength);
DevInfoDetail.cbsize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
SetupDiGetInterfaceDeviceDetail (hDevInfo, devInfoData, DevInfoDetail, requiredlength, &requiredlength, NULL);        
        

Ошибки:
1. error C3861: 'defineGuid': identifier not found
2. error C2664: 'SetupDiGetDeviceInterfaceDetailA' : cannot convert parameter 2 from 'SP_DEVICE_INTERFACE_DATA'         to 'PSP_DEVICE_INTERFACE_DATA'
3. error C2065: 'SP_DEVICE_INTERFACE_DETAIL_DATA_DEVINFODETAIL' : undeclared identifier

1. Про функцию defineGuid() я вообще нигде ничего не нашел
2. Если "parameter 2" - devInfoData сделать объектом класса PSP_DEVICE_INTERFACE_DATA, тогда компилятор  ругается на строку "devInfoData.cbSize = sizeof(devInfoData);" 
3. третья ошибка тоже непонятная.

Подскажите, пожалуйста!
Заранее благодарен!


PM MAIL   Вверх
W4FhLF
Дата 10.9.2007, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



Цитата(BBulat @  10.9.2007,  14:17 Найти цитируемый пост)
2. Если "parameter 2" - devInfoData сделать объектом класса PSP_DEVICE_INTERFACE_DATA, тогда компилятор  ругается на строку "devInfoData.cbSize = sizeof(devInfoData);" 


devInfoData->cbSize

Цитата(BBulat @  10.9.2007,  14:17 Найти цитируемый пост)
1. error C3861: 'defineGuid': identifier not found


Эту функцию ты писал? Судя по-всему нет. Значит смотри там, где брал исходник. 


Цитата

3. error C2065: 'SP_DEVICE_INTERFACE_DETAIL_DATA_DEVINFODETAIL' : undeclared identifier


Не знаю где ты вообще откопал эту структуру, у меня ни в 7, ни в 8 студии нет. 



Это сообщение отредактировал(а) W4FhLF - 10.9.2007, 14:40


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Dude03
Дата 10.9.2007, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 28.4.2006

Репутация: 1
Всего: 6



Код

#include <windows.h>
#include <setupapi.h>
#include <initguid.h>


не SP_DEVICE_INTERFACE_DETAIL_DATA_DEVINFODETAIL, а SP_INTERFACE_DEVICE_DETAIL_DATA.

Это сообщение отредактировал(а) Dude03 - 10.9.2007, 15:36
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.