Hola.
Leyendo tu último mensaje coincido con
dec sobre la causa de que no te funcione la implementación de Delphi.
Desconozco si será así para Delphi XE3 por que aún no he podido adquirir una nueva versión. Pero, por si te sirve de ayuda, te pongo un trozo de código donde llamo a la función
GetEnvironmentVariable de ambos modos (desde Delphi 7):
Código Delphi
[-]
var
EnvStr: string;
size: Integer;
begin
ShowMessage('Delphi: '+ SysUtils.GetEnvironmentVariable('WINDIR'));
size := Windows.GetEnvironmentVariable('WINDIR',nil,0);
if size > 0 then
begin
SetLength(EnvStr, size-1);
Windows.GetEnvironmentVariable('WINDIR',PChar(EnvStr),size);
ShowMessage('Win API: '+EnvStr);
end;
end;
Cita:
|
Entonces porque cuando Embarcadero hizo la función le saco dos de esos parámetros.
|
No podría asegurar el motivo que llevó a los diseñadores de Delphi a hacerlo. Estimo que para simplificarles la llamada a los usuarios del lenguaje.
Y comparando la dificultad en el uso de una u otra, mas bién surge preguntar por que los diseñadores de Windows no la hicieron de otro modo...
Saludos.
