Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.10.2013, 15:20
Smallboy Smallboy вне форума
Прохожий
 
Регистрация: 16.07.2013
Сообщения: 18
Версия Delphi: Delphi XE4
Репутация: 10
По умолчанию Ошибка загрузки Dll

Добрый день!
Возникла проблема. При выполнение Run(F9) Rad Studio XE2 вот эта строка выдает ошибки.
Код:
HandlePinPad := LoadLibrary('xxxx.dll');

вначале: Privileged instruction
затем: System Exception
затем: Access violation раз 10

затем все запускается и работает. Все функции из длл нормально работают.

Кто подскажет в чем может быть дело?
Ответить с цитированием
  #2  
Старый 03.10.2013, 15:49
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Смех

Цитата:
Сообщение от Smallboy
Кто подскажет в чем может быть дело?
у тебя ошибка в программе
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Uniq! (03.10.2013)
  #3  
Старый 03.10.2013, 22:29
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
вначале: Privileged instruction
затем: System Exception
затем: Access violation раз 10

затем все запускается и работает. Все функции из длл нормально работают.

Кто подскажет в чем может быть дело?
[extrasence mode on]
DLLMain кривой.
[extrasence mode off]
Подсказка: нужно БОЛЬШЕ кода в постах.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
Alegun (04.10.2013)
  #4  
Старый 04.10.2013, 00:03
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Smallboy
затем: Access violation раз 10
В порядке общего бреда могу предположить, что дело в конфликте настроек FastMM с распределением памяти в DLL.
Ответить с цитированием
  #5  
Старый 04.10.2013, 10:07
Smallboy Smallboy вне форума
Прохожий
 
Регистрация: 16.07.2013
Сообщения: 18
Версия Delphi: Delphi XE4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
[extrasence mode on]
DLLMain кривой.
[extrasence mode off]
Подсказка: нужно БОЛЬШЕ кода в постах.

код только по загрузке длл. На него и ругается.
Код:
  LoadErrorCodes;
  HandlePinPad := 0;
     HandlePinPad := LoadLibrary('xxx.dll');

  if HandlePinPad <> 0 then
  begin
    SetComParams := GetProcAddress(HandlePinPad, 'CAPS_SetComParams');
    Test := GetProcAddress(HandlePinPad, 'CAPS_Test');

    if (@SetComParams <> nil)
      and (@Test <> nil)
 
Ответить с цитированием
  #6  
Старый 04.10.2013, 11:49
Smallboy Smallboy вне форума
Прохожий
 
Регистрация: 16.07.2013
Сообщения: 18
Версия Delphi: Delphi XE4
Репутация: 10
По умолчанию

в делфи7 успешно грузится без ошибок. А в XE2 не хочет.

Может есть идеи?
Ответить с цитированием
  #7  
Старый 04.10.2013, 17:27
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Разрядность проектов и DLL совпадает?
Ответить с цитированием
  #8  
Старый 04.10.2013, 23:34
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Что за чудо-либа? Давно бы уже приложил. Если падает на LoadLibrary, то 98% ошибка в DLL. Возможно, как сказал Freeman, в разрядности, но маловероятно.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #9  
Старый 05.10.2013, 00:24
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

А вот такие ошибки
Код:
Access violation
не трэйсятся step by step?

Я просто частенько натыкаюсь на подобного рода глюки, и не всегда могу с ними справится ((
Ответить с цитированием
  #10  
Старый 05.10.2013, 00:31
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Вроде трейсятся, но оно ведь срабатывает при обращении в кривой адрес, а получаем мы этот адрес сильно раньше как правило.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #11  
Старый 05.10.2013, 02:05
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Uniq!
Я просто частенько натыкаюсь на подобного рода глюки, и не всегда могу с ними справится ((
Довольно часто такие ошибки выявляются не в тех местах, где реально происходят. Например, некая память вначале освобождается, ссылка на нее сохраняется, а падение происходит в момент обращения из совершенно другого места... В принципе, Bargest о том же самом написал.
Ответить с цитированием
  #12  
Старый 07.10.2013, 10:19
Smallboy Smallboy вне форума
Прохожий
 
Регистрация: 16.07.2013
Сообщения: 18
Версия Delphi: Delphi XE4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Freeman
Разрядность проектов и DLL совпадает?

разрядность совпадает
Ответить с цитированием
  #13  
Старый 07.10.2013, 10:21
Smallboy Smallboy вне форума
Прохожий
 
Регистрация: 16.07.2013
Сообщения: 18
Версия Delphi: Delphi XE4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
Что за чудо-либа? Давно бы уже приложил. Если падает на LoadLibrary, то 98% ошибка в DLL. Возможно, как сказал Freeman, в разрядности, но маловероятно.

к сожалению длл не могу приложить( не для распространения
Ответить с цитированием
  #14  
Старый 07.10.2013, 20:05
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Тогда самостоятельно открывай IDA PRO или другой дизассемблер, ставь бряк на DLLMain, запускай через свою прогу, жди останова и дебажь. Может что прояснится.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:52.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025