Ver Mensaje Individual
  #2  
Antiguo 17-09-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Supongo que CartInformation es donde el componente ActiveX devuelve información.
En ese caso, deberás reservar memoria suficiente (Seguramente el manual te informará de la máxima longitud).
Si no sabes este dato, toma un valor que consideres suficiente como para ir un poco sobrado.
El tipo de puntero debería ser PWideChar.
Recuerda que en muchos casos conviene poner todo en un try..finally para asegurarte de que liberas la memoria, pase lo que pase.

Te dejo un ejemplo que llama a una función de Windows para obtener la carpeta temporal.
Código Delphi [-]
function DameTempPath: string;
var
  pcadena : PChar;
begin
  // MAX_PATH está definido en Windows y tiene el valor 260.
  // Reservo 260 bytes de memoria y apunto con pcadena
  GetMem(pcadena, MAX_PATH + 1);

  // Llamo a la función que me devolverá la información en la memoria apuntada por pcadena
  GetTempPath(MAX_PATH, pcadena);

  // Convierto "cadena terminada con null" en "cadena pascal"
  Result := StrPas(pcadena);

  // Libero la memoria
  FreeMem(pcadena);
end;
Responder Con Cita