Fórum Ler WideString de Memória #336601
22/01/2007
0
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)