![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| BBulat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.12.2006 Репутация: нет Всего: нет |
Пытаюсь отладить программу, которая открывает устройство для записи и чтения:
Дебаггер показывает, что ошибка в строке " DevInfoDetail->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA); " и выдает следущее сообщение: Unhandled exception at 0x0041830c in mms_2.exe: 0xC0000005: Access violation writing location 0x00000000. Не может определить размер структуры DevInfoDetail, но почему непонятно, вроде все правильно делаю. Заранее благодарен! |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
дело не в этом, а в том, что память под DevInfoDetail не была выделена. Размер структуры еще при компиляции выясняется. проверяй, что в requiredlength лежит перед вызовом PSP_DEVICE_INTERFACE_DETAIL_DATA DevInfoDetail = (PSP_DEVICE_INTERFACE_DETAIL_DATA)malloc(requiredlength); PS плохой стиль то new то malloc используешь, определись с чем-нибудь одним |
|||
|
||||
| BBulat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.12.2006 Репутация: нет Всего: нет |
Действительно, malloc(requiredlength) возвращает 0 (22 строка моего кода). Но функции SetupDiGetInterfaceDeviceDetail (19 строка) и SetupDiEnumDeviceInterfaces (15 строка) также возвращают 0. Функция SetupDiGetClassDevs (9 строка) ошибок не выдает, т.е. проблема, я так думаю, в строке 14, хотя там вроде все правильно или с определением guid что-то попутал...
Ошибка может возникнуть из=за того, что устройство не подключено или проблема в другом? Заранее благодарен! |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 3 Всего: 44 |
Сорри не читала внимательно код. Но у выс не где не использовалась #pragma pack ?
-------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| BBulat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.12.2006 Репутация: нет Всего: нет |
нет не используется, а что надо? если да, то как точно надо это написать?
|
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 3 Всего: 44 |
BBulat, Нет не надо
-------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| BBulat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.12.2006 Репутация: нет Всего: нет |
Извините, что снова поднял тему, но я так и не смог решить проблемы описанные выше (см. третье сообщение этой темы)
Заранее благодарен! |
|||
|
||||
| Fazil6 |
|
||||||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: нет Всего: 60 |
непонятно чего ты хочешь...
в этом вся проблема. Ты проинициализировал
нулем и потом
ты тут разыменовываешь нулевой указатель. Об этом и говорит тебе
твой DevInfoDetail не указывает ни на какой объект Это сообщение отредактировал(а) Fazil6 - 16.10.2007, 11:21 |
||||||||||
|
|||||||||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |