7 / 7 / 1
Регистрация: 09.03.2013
Сообщений: 54
|
|||||||||||
1 | |||||||||||
Необработанное исключение. Нарушение прав доступа при чтении17.01.2014, 17:59. Показов 2741. Ответов 8
Метки нет (Все метки)
Здравствуйте! Пишу привязку программы к конкретному компьютеру, и получаю информацию о железе через WMI, но при сохранении данных полученных от функции в строку типа string получаю ошибку "Необработанное исключение в "0x00ea1a42" в "universal.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000000".
Функция:
0
|
17.01.2014, 17:59 | |
Ответы с готовыми решениями:
8
Необработанное исключение: Нарушение прав доступа при чтении Нарушение прав доступа при чтении по адресу Вызвано необработанное исключение: нарушение доступа для чтения. lpnmhdr было nullptr Необработанное исключение, нарушение прав доступа при чтении |
Ушел с форума
|
|
17.01.2014, 19:05 | 2 |
Сделайте проверку ошибок, тогда станет ясно, что и в каком месте происходит.
0
|
7 / 7 / 1
Регистрация: 09.03.2013
Сообщений: 54
|
|
17.01.2014, 19:12 [ТС] | 3 |
таки ошибка видна, она в 12 строчке, вопрос в том как ее исправить?
т.е. как присвоить значение возвращенное функцией строке типа char или string ?
0
|
Ушел с форума
|
||||||
17.01.2014, 19:22 | 4 | |||||
Если нет проверки ошибок - код некорректен и его результаты непредсказуемы.
В приведенном примере есть как минимум семь мест, из-за которых может возникнуть ошибка, и ни одно из них не контролируется. Пальцем в небо: думаю, ошибка в этой строке:
0
|
7 / 7 / 1
Регистрация: 09.03.2013
Сообщений: 54
|
|
17.01.2014, 19:23 [ТС] | 5 |
0
|
Ушел с форума
|
|
17.01.2014, 19:28 | 6 |
Ну представьте на секунду, что pLoc->ConnectServer по какой-то причине
завершается с ошибкой. В этом случае pSvc останется равным NULL. Но этот факт игнорируется и pSvc передается аргументом в функцию wqlQuery, где происходит попытка его разыменования - pSvc->ExecQuery. В результате разыменования нулевого указателя программа валится: "0xC0000005: Нарушение прав доступа при чтении "0x00000000". Если Вы сделаете проверку возвращаемых значений, то будете точно знать, какая функция завершилась неудачно и по какой причине (по коду возврата, либо по GetLastError).
1
|
7 / 7 / 1
Регистрация: 09.03.2013
Сообщений: 54
|
|
17.01.2014, 19:32 [ТС] | 7 |
0
|
Ушел с форума
|
|
17.01.2014, 19:35 | 8 |
Кстати, вот еще - в wqlQuery и motherboard отсутствует return.
И wqlQuery объявлена с возвращаемым типом char, а в motherboard этот тип почему-то приводится к <const char *>, что бессмысленно.
0
|
7 / 7 / 1
Регистрация: 09.03.2013
Сообщений: 54
|
|
17.01.2014, 19:38 [ТС] | 9 |
это отголоски моих незнаний и эксперементов с кодом, я добивался того чтобы присвоить строке полученные данные от функции. А потом уже использовать данные из этой строки для привязка программы.
0
|
17.01.2014, 19:38 | |
17.01.2014, 19:38 | |
Помогаю со студенческими работами здесь
9
Необработанное исключение. Нарушение прав доступа при чтении Необработанное исключение: 0xC0000005: Нарушение прав доступа при чтении Необработанное исключение по адресу 0x008B94C5. 0xC0000005: нарушение прав доступа при чтении по Необработанное исключение по адресу 0x00E730CD в ConsoleApplication18.exe: 0xC0000005: нарушение прав доступа при чтении Необработанное исключение по адресу 0x7798E43E (ntdll.dll) в bunkers.exe: 0xC0000005: нарушение прав доступа при чтении Необработанное исключение: "Нарушение прав доступа при чтении" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |