Estoy convirtiendo mis aplicaciones a Delphi 2009 y enfrenté un problema intrigante con algunas llamadas que necesitan convertir una cadena (ancha) a AnsiString.Convertir cadena a PAnsiChar en Delphi 2009
He aquí un ejemplo para demostrar el problema que estoy teniendo:
var
s: PAnsiChar;
...
s := PAnsiChar(Application.ExeName);
Con Delphi 2007 y versiones anteriores, s: = PChar (Application.ExeName) devolvería la ruta de aplicación exe.
con Delphi 2009, s: = PAnsiChar (Application.ExeName) devuelve solo 'E'.
Supongo que es porque estoy convirtiendo una cadena Unicode en una cadena ansi, pero ¿cómo puedo convertirla para que un PAnsiChar obtenga la cadena completa?
No debería, porque se trata de una conversión explícita. Y, sí, que debería funcionar. – gabr
lo sé, pero la conversión a PAnsiChar también es un poco cuestionable. –
Funciona a expensas de la conversión explícita. ¿Hay otra alternativa? La conversión a PAnsiChar se explica en mi respuesta a continuación. – smartins