Типовой случай после введения MT
Добавка
dt.ldata := nil;

_hi_DllInit - это метод-конструктор, а где деструктор...
destructor THIUseHiDLL.Destroy;
begin
if FID > 0 then
FreeLibrary(FID);
inherited;
end;
Не говоря уж про InitMan
Да и языково зависимый тип TData в интерфейсе - не радует