Konwertuję moje aplikacje na Delphi 2009 i napotkałem intrygujący problem z niektórymi wywołaniami, które muszą przekonwertować ciąg (szeroki) na AnsiString.Konwertuj ciąg znaków na PAnsiChar w Delphi 2009
Oto przykład wykazać problem mam:
var
s: PAnsiChar;
...
s := PAnsiChar(Application.ExeName);
z Delphi 2007 i wcześniejszych wersjach, S: = PChar (Application.ExeName) zwróci ścieżkę exe aplikacji.
z Delphi 2009, s: = PAnsiChar (Application.ExeName) zwraca tylko "E".
Zgaduję, że to dlatego, że konwertuję ciąg znaków Unicode na ciągi ansi, ale w jaki sposób mogę go przekonwertować tak, aby PAnsiChar otrzymał pełny ciąg znaków?
nie powinien, ponieważ jest to jednoznaczne przekształcenie. I, tak, to powinno działać. – gabr
Wiem, ale konwersja do PAnsiChar jest również nieco wątpliwa. –
To działa kosztem jawnej konwersji. Czy jest jakaś inna alternatywa? Konwersja do PAnsiChar została wyjaśniona w mojej odpowiedzi poniżej. – smartins