PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vergleichen von _LARGE_INTEGER Werten



Nakamura
13-11-2008, 07:29
Hallo zusammen,

Wie vergleiche ich zwei _LARGE_INTEGER Werte miteinander?

Also etwa so:

_LARGE_INTEGER Last_Time;
_LARGE_INTEGER Current_Time;

if (Last_Time < Current_Time)
...

Vielen Dank!

panzi
16-11-2008, 01:17
Wie und wo ist dieser _LARGE_INTEGER Typ definiert? Welcher Library, welcher Header? C oder C++? Das ist jedenfalls kein Standard.

peschmae
16-11-2008, 06:29
Ein MS dingens: http://msdn.microsoft.com/en-us/library/aa383713.aspx

Also entweder einfach das QuadPart Member der Union verwenden falls der Compiler das kann oder alternativ die beiden Teile vergleichen wohl etwa so:


if(Last_Time.HighPart < Current_Time.HighPart ||
(Last_Time.HighPart == Current_Time.HighPart && Last_Time.LowPart < Current_Time.LowPart) )

Wenn die Bedingung für den höherwertigen Teil erfüllt ist kommts auf den niederwertigen nicht mehr drauf an, wenn die höherwertigen Teile gleich sein muss man den niederwertigen angucken und sonst ist die Bedingung eh nicht erfüllt...

MfG Peschmä, der übrigens ein grosser Anhänger von zumindest versuchsweise portablem Code ist

BLUESCREEN3D
17-11-2008, 22:22
Schreib einfach diese Funktion:

bool operator<(const _LARGE_INTEGER &a, const _LARGE_INTEGER &b);