![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
есть массив записей, в котором хранится хэндл и название загруженного модуля:
Код:
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" - в чём может быть дело???? |