A ver si me entero bien..
Tienes tu programa y tu dll en el mismo directorio, correcto?
Y quieres que al abrir el programa, compruebe la existencia de la dll en el directorio del proyecto, y si existe, copiarla a %temp%, y por último cargarla con LoadLibrary, cierto?
Primeramente deberías especificar la función a usar de la dll, de eso ya te encargas tú.
Lo principal que pides así lo puedes hacer, no te compliques la vida:
//uses windows, sysutils;
Function mEnviron(VName: string): string;
var Res: array [0..MAX_PATH] of Char;
begin
ExpandEnvironmentStrings(PChar('%' + VName + '%'), Res,
ExpandEnvironmentStrings(PChar('%' + VName + '%'), Nil, 0));
Result:= Res;
end;
var
LibH: THandle;
TempLib: string;
Const
DllName = 'midll.dll';
begin
LibH:= 0;
TempLib:= mEnviron('temp') + '\' + DllName;
if fileexists(DllName) then
if copyfile(DllName, PChar(TempLib), True) then
LibH:= LoadLibrary(PChar(TempLib));
if LibH <> 0 then
begin
{Aquí las acciones a realizar si
la librería se ha cargado desde %temp% ...}
end;
end;
Con esto que pusiste antes:
Edit1.Text := SetCurrentDirectory (Pchar(GetTempDir2));
Me mataste vivo compañero, No puedes asignar a edit1.text el resultado de tipo
[Enlace externo eliminado para invitados] que devuelve la función
[Enlace externo eliminado para invitados]
Si lo que quieres es mostrar en el edit el directorio actual, usa
[Enlace externo eliminado para invitados]
Un saludo.