Cita:
Empezado por roman
No creo que pueda usar un string sin conocer de antemano la longitud de la cadena devuelta. Dicho de otra forma, necesitaría usar SetLength antes de la llamada, de lo contrario no habría memoria asignada para recibir el resultado.
|
Teniendo encuenta que va a usar una función de una dll parecida a GetSystemDirectory:
Cita:
Empezado por usuario87
...mi programa usa una funcion que esta dentro de una dll, esta funcion es parecida a GetSystemDirectory...
|
El tamaño debe ser MAX_PATH. El problema del tamaño también lo tenemos en un buffer, y como ya dije antes debe asignarlo antes de usarlo:
Cita:
Empezado por escafandra
...puedes usar un Buffer tipo array of char o un String con longitud asignada previamente o un ShortString si no va a ser mas larga de 255...
|
Luego debes reasignar el tamaño del String al verdadero número de caracteres. En definitiva usas el String como un mero Buffer. Un ejemplo:
Código Delphi
[-]var
S: String;
begin
SetLength(S, 100); lstrcpy(@S[1], 'Hola'); S:= String(PAnsiChar(@S[1])); end;
Saludos.