Deklaration: Declare Function QueryPerformanceCounter Lib "kernel32.dll" ( _ lpPerformanceCount As LARGE_INTEGER) As Long Beschreibung: Parameter:
Rückgabewert: Beispiel: Private Declare Function QueryPerformanceCounter Lib "kernel32.dll" ( _ lpPerformanceCount As ULARGE_INTEGER) As Long Private Declare Function QueryPerformanceFrequency Lib "kernel32.dll" ( _ lpFrequency As ULARGE_INTEGER) As Long Private Declare Function SetPixelV Lib "gdi32.dll" ( _ ByVal hdc As Long, _ ByVal X As Long, _ ByVal Y As Long, _ ByVal crColor As Long) As Long Private Declare Function SetPixel Lib "gdi32.dll" ( _ ByVal hdc As Long, _ ByVal X As Long, _ ByVal Y As Long, _ ByVal crColor As Long) As Long Private Declare Sub MoveMemory Lib "kernel32.dll" _ Alias "RtlMoveMemory" ( _ Destination As Any, _ Source As Any, _ ByVal Length As Long) Private Type ULARGE_INTEGER LowPart As Long HighPart As Long End Type Private CounterFreq As Currency Private TmpUInt As ULARGE_INTEGER ' Funktion um eine ULARGE_INTEGER in eine Currency-Variable zu kopieren Private Function UlargeToCurrency(ByRef ULarge As ULARGE_INTEGER) As Currency Dim Retval As Long, TmpCur As Currency ' Ularge in Currency kopieren und mit 10000 Multiplizieren MoveMemory TmpCur, ULarge, 8 UlargeToCurrency = TmpCur * 10000 End Function ' Counter Frequenz ermitteln Private Sub Form_Load() Me.ScaleMode = vbPixels ' Ermitteln, ob ein Hochleistungs-Timer verfügbar ist Retval = QueryPerformanceFrequency(TmpUInt) If Retval = 0 Then MsgBox "Dieses System hat keinen Hochleistungs Zeitmesser" Command1(0).Enabled = False Command1(1).Enabled = False Exit Sub End If ' Umwandeln der 64-Bit-Integer in eine Currency-Variable CounterFreq = UlargeToCurrency(TmpUInt) Debug.Print "Hochleistungs Timer Frequenz: " & CounterFreq & " Counts _ pro Sekunde" End Sub ' Zeit der SetPixel & SetPixelV Füllvariante messen Private Sub Command1_Click(Index As Integer) Dim Retval As Long Dim StartCur As Currency, EndCur As Currency Dim StartInt As ULARGE_INTEGER, EndInt As ULARGE_INTEGER Dim i As Long, j As Long ' Zeit vor dem Beginn der Funktion messen Retval = QueryPerformanceCounter(StartInt) ' Starten der verschiedenen Funktionen Select Case Index Case 0 ' SetPixel For i = 0 To Me.ScaleWidth For j = 0 To Me.ScaleHeight SetPixel Me.hdc, i, j, vbRed Next j Next i Case 1 ' SetPixelV For i = 0 To Me.ScaleWidth For j = 0 To Me.ScaleHeight SetPixelV Me.hdc, i, j, vbBlue Next j Next i End Select ' Zeit nach dem Beenden der Funktion messen Retval = QueryPerformanceCounter(EndInt) ' Umwandeln der Zeiten in ein Currency-Format StartCur = UlargeToCurrency(StartInt) EndCur = UlargeToCurrency(EndInt) MsgBox "Diese aktion dauerte " & CLng((EndCur - StartCur) / _ (CounterFreq / 1000)) & " Millisekunden.." End Sub Diese Seite wurde bereits 12.273 mal aufgerufen. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Buchempfehlung Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Neu! sevCoolbar 3.0 Professionelle Toolbars im modernen Design! Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access |
||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |