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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.07.2011, 20:33
MAcK MAcK вне форума
Прохожий
 
Регистрация: 24.07.2008
Сообщения: 38
Репутация: 10
Плохо Загрузка длл

Использую:

Код:
dllHandle := LoadLibrary(PChar(Path + 'my.dll'));

Если запускаю из под делфи, то dllHandle = 0
Если запускаю ехе файл, то загружается всё нормально. Почему не загружается длл из под Делфи? Как исправить ошибку?

Windows 7 x32. Delphi 2010

PS:
SysErrorMessage(GetLastError)

Выдал: The handle is invalid

Последний раз редактировалось MAcK, 02.07.2011 в 21:10.
Ответить с цитированием
  #2  
Старый 02.07.2011, 21:20
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

MAcKZloy
А как с правами?
Ответить с цитированием
  #3  
Старый 02.07.2011, 21:33
MAcK MAcK вне форума
Прохожий
 
Регистрация: 24.07.2008
Сообщения: 38
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
MAcKZloy
А как с правами?

Сама делфя запускается от имени администратора.
Ответить с цитированием
  #4  
Старый 02.07.2011, 21:42
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Сама да, но каталог обращения?
Ответить с цитированием
  #5  
Старый 02.07.2011, 23:13
Аватар для Thrasher
Thrasher Thrasher вне форума
Illuminati
 
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
По умолчанию

Попробуй

dllHandle := LoadLibrary(PChar('"'+Path + 'my.dll"'));

и проверь значение Path, может у нее значение '' или вида 'C:\SomeDir' и тогда полный путь принимает вид 'C:\SomeDirmy.dll'.
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
Ответить с цитированием
  #6  
Старый 03.07.2011, 08:13
MAcK MAcK вне форума
Прохожий
 
Регистрация: 24.07.2008
Сообщения: 38
Репутация: 10
По умолчанию

Цитата:
Сообщение от Thrasher
Попробуй

dllHandle := LoadLibrary(PChar('"'+Path + 'my.dll"'));

и проверь значение Path, может у нее значение '' или вида 'C:\SomeDir' и тогда полный путь принимает вид 'C:\SomeDirmy.dll'.


PAth := ExtractFilePath(Application.ExeName);

Это всё я уже проверял. Если бы была ошибка, то и при запуске ехе файла, выдало ошибку загрузки длл, а тут только если запускать из под делфи

Последний раз редактировалось MAcK, 03.07.2011 в 08:41.
Ответить с цитированием
  #7  
Старый 03.07.2011, 10:37
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
LoadLibrary
Return Values
If the function succeeds, the return value is a handle to the module.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
Код:
var
  h: THandle;
begin
  h:=LoadLibrary('dll.dll');
  if h=0 then ShowMessage(SysErrorMessage(GetLastError));
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #8  
Старый 03.07.2011, 11:06
MAcK MAcK вне форума
Прохожий
 
Регистрация: 24.07.2008
Сообщения: 38
Репутация: 10
По умолчанию

Проблема решена:

Цитата:
Changed debug options: TOOLS|Debugger Options|OS Exceptions
Invalid Handle ($C0000008) On resume = Run handled
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter