Tenta este programinha em pascal, acho que vai! Abraços! Program Prog_STrToPChar;
Uses WinCrt, winprocs;
{WinProcs Apenas para a Função PostQuitMessage(0), Que é para encerrar o programa}
Function StrToPChar(S: String) : PChar;
Const MaxArray = 254; {Esta constante determina o numero maximo do Vetor de Char(Tamanho da String)}
Var
PC : PChar; { PC: é um PChar }
AP : Array[0..MaxArray] Of Char; { AP: é um Vetor de Char }
Cont : integer; { Cont: é um integer }
Begin
For Cont := 0 To MaxArray Do {Loop que limpa o Vetor atribuindo valor nulo para ele }
AP[Cont] := #0;
For Cont := 0 To Length(S) Do {Loop de atribuição da String para o Vetor de Char}
AP[Cont] := S[Cont];
{Write('Array of char:('); }
{Write(AP); }
{Writeln(')'); } { Escrever na tela o resultado }
{ da primeira troca }
PC := AP; { Atribui diretamente o Vetor de Char para o PChar }
{Write('Pchar('); } { Escrevendo na tela o resultado }
{Write(PC); } { final da conversão para PChar }
{Writeln(')'); }
StrToPChar := PC; { Retorna o valor adquirido a Função }
End;
Var TextoGeral : String; { Varivel de Exemplo: String }
Begin
While TextoGeral <> 'x' Do { Loop de Execução }
Begin
Readln(TextoGeral); { Ler String de entrada }
Writeln(StrToPChar(TextoGeral)); { Escrever na tela Pchar}
End;
PostQuitMessage(0); { Comando de encerramento do programa: Unit WinProcs }
end.