Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hell_

Problemas com caracteres

Recommended Posts

function getUrl(Service: string): String;

var

ClDDE: TDDEClientConv; {TDDEClientConv; por no uses (Ddeman);}

temp:PWideChar;

begin

Result := '';

ClDDE:= TDDEClientConv.Create( nil );

 

with ClDDE do

begin

SetLink(Service,'WWW_GetWindowInfo');

temp := PWideChar(RequestData('0xFFFFFFFF'));

Result := StrPas(temp);

StrDispose(temp);

CloseLink;

end;

 

ClDDE.Free;

 

end; //

 

No delphi 2010, o retorno do metodo é muito diferente do retorno do mesmo, no Delphi 7.

No delphi 7, consigo o esperado.

No delphi 2010, me é retornado um monte de caracteres estranhos.

 

 

No delphi 7, declaro a variavel como Pchar, e no Delphi 2010 da maneira que esta ai.

Sendo que, se eu declarar Pchar no 2010 da o mesmo problema.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como voce esta chamando essa funcao???

Estou chamando da maneira correta, porem os resultados são diferentes nas versoes do delphi.

No 2010 o retorno não é entendível, porem, no D7 sim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No delphi 2010 voce deve declarar a variavel 'temp' como 'PAnsiChar' e tirar a função 'PWideChar' antes do result.

 

segue o codigo:

 

function TForm1.getUrl(Service: string): String;

var

ClDDE: TDDEClientConv; {TDDEClientConv; por no uses (Ddeman);}

 

temp:PAnsiChar;

 

begin

Result := '';

ClDDE:= TDDEClientConv.Create( nil );

 

with ClDDE do begin

SetLink(Service,'WWW_GetWindowInfo');

 

temp := (RequestData('0xFFFFFFFF'));

 

Result := StrPas(temp);

StrDispose(temp);

CloseLink;

end;

 

ClDDE.Free;

 

end;

 

pra chamar a função use:

 

edit1.text := getUrl('IExplore');

 

//////

 

Thé +

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.