Hola,
¿Probaste con "LoadLibrary"? Lo siguiente es un extracto del ejemplo que viene en la ayuda de Delphi para esta función:
Código Delphi
[-]
var
Time: TTimeRec;
Handle: THandle;
GetTime: TGetTime;
...
begin
Handle := LoadLibrary('libraryname');
if Handle <> 0 then
begin
@GetTime := GetProcAddress(Handle, 'GetTime');
if @GetTime <> nil then
begin
GetTime(Time);
with Time do
WriteLn('The time is ', Hour, ':', Minute, ':', Second);
end;
FreeLibrary(Handle);
end;
end;
Actualización: Evidentemente, no te respondo a lo que preguntas... puesto que, después de leer tu pregunta con más atención, una cosa no tiene que ver con la otra... o no del todo.
Respondería lo que ya sabes, a lo que se ve: que el programa tendría que tratar de localizar las "DLLs" en el directorio donde se encuentre; si no las encuentra allí buscarlas entonces en el directorio de Windows; creo que también en los directorios System y System32 del mismo directorio de Windows.
No sé... se me hace raro... si supiera cómo haces uso del archivo DLL, esto es, si llamas a alguna función en concreto, o si declaras funciones externas implementadas en alguna DLLs...
Pero me voy por los cerros de Úbeda. Porque si usaras esto último podría hacerse algo así:
Código Delphi
[-]
procedure DoSomething; external 'MYLIB.DLL';
Y ahí ya se está dando la posibilidad de indicar dónde encontrar la DLL en cuestión para el procedimiento declarado.
O si usaras la DLL puntualmente, para lo cual podría valerte la función "LoadLibrary" indicada arriba, junto con sus "compañeras", pero esto tú ya lo sabrás... no sé a qué me canso cansándote.
Como ves, yo también estaré atento a quien pueda arrojar luz sobre este asunto. Lamento este rollo.