можно закрывать топик, проблема решена
в строке "Convertor.Init(FileName,TAPI.Create);" может быть неявная переменная, которая освобождается после FreeLibrary. это и вызывало ошибку, ну еще поменял тип string на WideString, теперь окончательный вариант выглядит следующим образом:
Код:
procedure TForm1.LoadData(FileName: String);
var
PluginName : String;
hPlugIn : THandle;
CreateConvertor : TCreateConvertor;
Convertor : IConvertor;
PAPI : TAPI;
begin
PlugInName:=Edit1.Text;
hPlugIn := LoadLibrary(PChar(PluginName));
CreateConvertor := GetProcAddress(hPlugIn, 'CreateConvert');
if Assigned(CreateConvertor) then
begin
if CreateConvertor(Convertor) then
begin
try
PAPI:=TAPI.Create;
Convertor.Init(FileName,PAPI);
Convertor.Convert;
finally
Convertor:=nil;
PAPI:=nil;
end;
end;
end;
FreeLibrary(hPlugIn);
end;