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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.01.2013, 22:28
sorockinalex sorockinalex вне форума
Начинающий
 
Регистрация: 08.08.2012
Сообщения: 178
Репутация: 10
По умолчанию LoadPackage.. UnloadPackage не срабатывает

есть массив записей, в котором хранится хэндл и название загруженного модуля:
Код:
type
  PluginIdName = record
    PluginId: HMODULE;
    PluginName: string;
  end;

var
  PluginsIdsNames: array of PluginIdName;

Далее в загружаю модуль и записываю в массив его хэндл и название:
(PlName - входное значение - имя модуля)
Код:
  //Пробуем загрузить плагин в память
  try
    Plugin := LoadPackage(LocalPluginPath);
ShowMessage('Загружаем '+PlName+'='+inttostr(Plugin));
    SetLength(PluginsIdsNames,Length(PluginsIdsNames)+1);
    PluginsIdsNames[Length(PluginsIdsNames)-1].PluginId:=Plugin;
    PluginsIdsNames[Length(PluginsIdsNames)-1].PluginName:=PlName;

Функция получения ид модуля из массива по его названию:
Код:
function GetHMODULE(PluginName: string): HMODULE;
var
  i: Integer;
begin
  Result:=0;
  for i := 0 to (Length(PluginsIdsNames) - 1) do
  begin
    if PluginsIdsNames[i].PluginName = PluginName then
    begin
      Result := PluginsIdsNames[i].PluginId;
      Break;
    end;
  end;
  ShowMessage(IntToStr(Result));
end;

Теперь пробую выгрузить модуль
Код:
    ShowMessage('Пробуем выгрузить '+AllowedToLoadPluginNames[i]);
    UnloadPackage(GetHMODULE(AllowedToLoadPluginNames[i]));

при загрузке и выгрузке msgbox выводит IntToStr(HMODULE) идентификатор. Записываю на листочек - они одинаковые! Но UnloadPackage вылетает с ошибкой "Invalid Package handle" - в чём может быть дело????
Ответить с цитированием
  #2  
Старый 24.01.2013, 23:10
sorockinalex sorockinalex вне форума
Начинающий
 
Регистрация: 08.08.2012
Сообщения: 178
Репутация: 10
По умолчанию

блин, я в другом месте выгружал модуль, так что вопрос решён
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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