Hell_ 0 Denunciar post Postado Fevereiro 9, 2011 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
Wiglan 0 Denunciar post Postado Fevereiro 9, 2011 como voce esta chamando essa funcao??? Compartilhar este post Link para o post Compartilhar em outros sites
Hell_ 0 Denunciar post Postado Fevereiro 9, 2011 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
Wiglan 0 Denunciar post Postado Fevereiro 11, 2011 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