Ler WideString de Memória
Tenho um ponteiro (Pointer) indicando uma área de memória, onde
neste espaço tem gravado uma string no padrão UNICODE.
Pude perceber que para cada caracter ele ocupa 2 bytes mais
um no total da string ou seja, se o conteúdo é de 30 caracteres
ele faz (30 + 1) * 2. Como transformar esse conteúdo em uma
AnsiString (String normal) ?
Já tentei o seguinte mas NÃO funcionou....
Var
pData: Pointer; ... (Conteúdo Original)
p: PByte;
sValor: String;
begin
// Pega o Valor... Usei dessa forma porque vi em Um Exemplo...
p := PByte(LongWord(pData) + 8);
// Atribui para uma variável tipo String
sValor := WideCharToString(PWideChar(p));
Alguem tem alguma dica ....???
neste espaço tem gravado uma string no padrão UNICODE.
Pude perceber que para cada caracter ele ocupa 2 bytes mais
um no total da string ou seja, se o conteúdo é de 30 caracteres
ele faz (30 + 1) * 2. Como transformar esse conteúdo em uma
AnsiString (String normal) ?
Já tentei o seguinte mas NÃO funcionou....
Var
pData: Pointer; ... (Conteúdo Original)
p: PByte;
sValor: String;
begin
// Pega o Valor... Usei dessa forma porque vi em Um Exemplo...
p := PByte(LongWord(pData) + 8);
// Atribui para uma variável tipo String
sValor := WideCharToString(PWideChar(p));
Alguem tem alguma dica ....???
Mcd
Curtidas 0