Je suis en train de convertir mes applications en Delphi 2009 et j'ai été confronté à un problème intrigant avec certains appels qui ont besoin de convertir une chaîne (wide) en AnsiString.Convertir une chaîne en PAnsiChar en Delphi 2009
Voici un exemple pour illustrer la question que je vais avoir:
var
s: PAnsiChar;
...
s := PAnsiChar(Application.ExeName);
Avec Delphi 2007 et les versions précédentes, s: = PChar (Application.ExeName) retournera le chemin exe application. Avec Delphi 2009, s: = PAnsiChar (Application.ExeName) renvoie uniquement 'E'. Je suppose que c'est parce que je convertis une chaîne unicode en une chaîne ansi, mais comment puis-je la convertir pour que PAnsiChar obtienne la chaîne complète?
Vous ne devriez pas parce qu'il est une conversion explicite. Et, oui, ça devrait marcher. – gabr
Je sais, mais la conversion en PAnsiChar est également un peu discutable. –
Cela fonctionne au prix de la conversion explicite. Il y a t'il d'autres solutions? La conversion en PAnsiChar est expliquée dans ma réponse ci-dessous. – smartins