FreeLibrary

30/09/2004

Pessoal:
var h:HINST; i:Integer;
begin
  h := LoadLibrary(´x.dll´);
  i := h;
  FreeLibrary(i);
end;

Se h for > High(Integer), o FreeLibrary liberará a dll ?


Ipc$

Respostas

30/09/2004

Beppe

Se não houver mais handles ativos da dll(isto é, todos que chamaram LoadLibrary nela já chamaram FreeLibrary), sim.

Mas é raro que lhe seja retornado Handle < 0(H < 0, se H > High(Integer))


Responder Citar

30/09/2004

Ipc$

Obrigado pela resposta Beppe.
Minha dúvida era a seguinte:
Tenho que passar o HInst da dll por SendMessage p/ a dll mãe para que ela possa liberá-la. Como o HInst é uma DWord e o wParam é um Integer, fiquei em dúvida se era possível dar o FreeLibrary pelo wParam quando este fosse negativo.


Responder Citar