12 / 5 / 5
Регистрация: 23.05.2018
Сообщений: 29
|
||||||
1 | ||||||
Ошибка access violation executing location при динамическом подключении dll28.06.2018, 12:26. Показов 5654. Ответов 5
Метки нет (Все метки)
Товарищи, помогите понять, что я упустил. Делаю все dроде как в статьях пишут, но возникает ошибка в процессе выполнения программы (скриншот ниже).
Статически я эту библиотеку подключал успешно.
0
|
28.06.2018, 12:26 | |
Ответы с готовыми решениями:
5
Ошибка 'Access violation' при динамическом создании idHTTP Ошибка при запуске программы: Access violation writing location 0x00000000 Подключение DLL, Access violation reading location Ошибка access violation at address при подключении принтера |
12 / 5 / 5
Регистрация: 23.05.2018
Сообщений: 29
|
|
28.06.2018, 12:34 [ТС] | 2 |
Я так понимаю, что вот эта функция LoadLibrary не может загрузить библиотеку.
Но в чем может быть причина провала.
0
|
22 / 11 / 7
Регистрация: 07.06.2018
Сообщений: 82
|
|
28.06.2018, 15:08 | 3 |
Сначала проверь загрузилась требуемая библиотека или нет. Переменная hDll должна быть не равна нулю (NULL)
Если библиотека загрузилась нормально, то проверь переменную ADD. Если она имеет нулевое значение, то запрашиваемая функция при вызове GetProcAddress не существует А далее принимай решение по обстоятелствам
1
|
12 / 5 / 5
Регистрация: 23.05.2018
Сообщений: 29
|
|
28.06.2018, 15:14 [ТС] | 4 |
Эта переменная равна нулю.
Ноя и полный путь к файлу dll прописывал, и закинул этот файл во все папки проекта. Но ничего не помогло.
0
|
22 / 11 / 7
Регистрация: 07.06.2018
Сообщений: 82
|
|||||||||||||||||||||
28.06.2018, 15:32 | 5 | ||||||||||||||||||||
Ошибка в кодировке строк
При внимательном рассмотрении строки должны быть, если проект собирается в UNICODE cборке
Чтобы не замарачиваться с кодировками, советую использовать следующий код
1
|
552 / 24 / 7
Регистрация: 12.11.2013
Сообщений: 50
|
|
28.06.2018, 15:32 | 6 |
Сообщение было отмечено _lunar_ как решение
Решение
1. идём на MSDN и смотрим что LoadLibrary это HMODULE а не HINSTANCE.
2. если HMODULE hDll равен NULL, то проверяем путь до библиотеки (если она лежит не рядом с экзешником, то необходимо прописывать полный путь). 2.1. разбираемся с кодировкой - многобайтовая или юникод. Непонятно зачем работать с TCHAR и одновременно пихать WCHAR в путь к dll. 3. если HMODULE hDll не равен NULL, идём на MSDN и смотрим что GetProcAddress это __stdcall, правильно инициализируем переменную ADD.
2
|
28.06.2018, 15:32 | |
28.06.2018, 15:32 | |
Помогаю со студенческими работами здесь
6
Exception thrown at 0x77D75BCA (ntdll.dll): 0xC0000005: Access violation reading location 0x0000 Ошибка "Access violation writing location" при работе с массивом. Ошибка Access violation writing location ошибка Access violation reading location 0x00000066 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |