# Function to set high and low Dword of a QWord

6 messages
Open this post in threaded view
|

## Function to set high and low Dword of a QWord

 Hi,   I'm looking to a function that will take two DWord as arguments and and returns a Qword where the low 4 bytes are the first DWord and the High 4 bytes the second DWord. Something like MakeLong of win unit. BTW   TQWordRec = record     D1: Dword;     D2: DWord;   end; TQWordRec will have the same memory representation of  the result of such function? Thanks in advance. Luiz _______________________________________________ fpc-pascal maillist  -  [hidden email] http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Open this post in threaded view
|

## Re: Function to set high and low Dword of a QWord

 On 28 feb 2007, at 17:51, Luiz Americo Pereira Camara wrote: >  I'm looking to a function that will take two DWord as arguments   > and and returns a Qword where the low 4 bytes are the first DWord   > and the High 4 bytes the second DWord. function makeqword(d1, d2: dword): qword; begin    result:=(qword(d2) shl 32) or d1; end; >  TQWordRec = record >    D1: Dword; >    D2: DWord; >  end; > > TQWordRec will have the same memory representation of  the result   > of such function? Only on little endian, on big endian it's the other way round. Jonas _______________________________________________ fpc-pascal maillist  -  [hidden email] http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Open this post in threaded view
|

## Re: Function to set high and low Dword of a QWord

 Jonas Maebe wrote: > > On 28 feb 2007, at 17:51, Luiz Americo Pereira Camara wrote: > >>  I'm looking to a function that will take two DWord as arguments and >> and returns a Qword where the low 4 bytes are the first DWord and the >> High 4 bytes the second DWord. > > function makeqword(d1, d2: dword): qword; > begin >   result:=(qword(d2) shl 32) or d1; > end; > >>  TQWordRec = record >>    D1: Dword; >>    D2: DWord; >>  end; >> >> TQWordRec will have the same memory representation of  the result of >> such function? > > Only on little endian, on big endian it's the other way round. > Thanks Luiz _______________________________________________ fpc-pascal maillist  -  [hidden email] http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Open this post in threaded view
|

## Re: Function to set high and low Dword of a QWord

 In reply to this post by Jonas Maebe-2 Jonas Maebe schrieb: > > On 28 feb 2007, at 17:51, Luiz Americo Pereira Camara wrote: > >>  I'm looking to a function that will take two DWord as arguments and >> and returns a Qword where the low 4 bytes are the first DWord and the >> High 4 bytes the second DWord. > > function makeqword(d1, d2: dword): qword; > begin >   result:=(qword(d2) shl 32) or d1; > end; Cleaner imo: lo(result):=d1; hi(result):=d2; > >>  TQWordRec = record >>    D1: Dword; >>    D2: DWord; >>  end; >> >> TQWordRec will have the same memory representation of  the result of >> such function? > > Only on little endian, on big endian it's the other way round. > > > Jonas > _______________________________________________ > fpc-pascal maillist  -  [hidden email] > http://lists.freepascal.org/mailman/listinfo/fpc-pascal_______________________________________________ fpc-pascal maillist  -  [hidden email] http://lists.freepascal.org/mailman/listinfo/fpc-pascal