Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo Macedo

Interpretação de Código

Recommended Posts

Boa tarde, pessoal.

Uma apresentação rápida, meu nome é Rodrigo Macedo. E eu estou com o seguinte problema:

Estou migrando uma parte do código escrita em Delphi para um sistema feito usando a plataforma .net.

 

Usei a ferramenta delphi2Cs para converter boa parte do código (e facilitando, talvez, meu trabalho).

Tem um trecho do código que eu não entendi. Nunca trabalhei com delphi antes, daí peço a ajuda de vocês, e assim conseguir escrever o correspondente em c#.

 

o trecho é o seguinte:

FPArray := TDoubleDWORD(P).L;

 

Onde TDoubleDWORD é uma classe do tipo "packed record", onde tem dois atributos do tipo DWORD. e P é um valor do tipo double.

 

O que eu interpreto aí, é que há alguma função build-in que faz a conversão desse valor P. E com o objeto pronto (que é a resposta de TDoubleDWORD), me retorna o valor de L. Mas como ele faz isso? Já que existem dois atributos no objeto valor TDoubleDWORD? Pesquisei e não encontrei nada que possa me ajudar nisso.

Agradeço muito qualquer ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo uma dúvida, essa linha seria assim?

 

FPArray := TDouble.DWORD(P).L;

 

você sabe para qual finalidade seria essa parte do código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo uma dúvida, essa linha seria assim?

 

FPArray := TDouble.DWORD(P).L;

 

você sabe para qual finalidade seria essa parte do código?

 

Oi wllf,

Eu imagino que seja algum tipo de conversão. Mas ao certo eu não sei.

A minha pergunta é esta mesmo.

 

 

Rodrigo uma dúvida, essa linha seria assim?

 

FPArray := TDouble.DWORD(P).L;

 

você sabe para qual finalidade seria essa parte do código?

 

Oi wllf,

Eu imagino que seja algum tipo de conversão. Mas ao certo eu não sei.

A minha pergunta é esta mesmo.

 

Outra coisa... é TDoubleDWORD mesmo. É uma packet record (?) da unit.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imagino que seja algum tipo de função para conversão envolvendo 3 variáveis: (I, P, L), estou pesquisando sobre o assunto ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imagino que seja algum tipo de função para conversão envolvendo 3 variáveis: (I, P, L), estou pesquisando sobre o assunto ...

 

Muito obrigado.

Perguntei aos desenvolvedores daqui, e nem eles sabem me responder ao certo.

Segue a definição da classe

 

TDoubleDWORD = packed record

L, R: DWORD;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

L, R: DWORD;

 

ou

 

L, P: DWORD;

 

Sabemos que a varável do tipo DWORD - Inteiro de 32 bits sem sinal (equivalente a unsigned int).

 

Sem quere ser chato mas caso TDoubleDWORD seja uma função desenvolvida pelo programdor, precisamos visualizar esse código ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem quere ser chato mas caso TDoubleDWORD seja uma função desenvolvida pelo programdor, precisamos visualizar esse código ..

 

Também pensei nisso. Só tenho duas units aqui, procurei por essa função e não tem nada.

Não tenho problema em abrir o código, o problema é que ele é confidencial, infelizmente não posso te mandar a unit por inteira. :T

 

O pessoal aqui está pensando que, de alguma forma, a engine do delphi consiga "splitar" o Int64 em dois (no caso o R e o L). Mas ainda não sei... tô instalando o ambiente do delphi pra poder conferir como ele se comporta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A questão TDoubleDWORD = packed record, não explica muito sobre a função, pq isso só quer dizer como o compilador vai organizar as variáveis..

 

Bom colega sem uma parte do código fica dificil, tudo aponta para uma função ou classe, mas sem o código é quase impossível só na adivinhação.

 

Boa sorte ...

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.