Mesures en haute precision (win32)

Description

DLL (3 Ko) qui fournit 3 calculs en haute resolution:
- vitesse processeur en Mghz.
- mesure en ticks processeur.
- mesure en millisecondes.
Ultra simple d'utilisation.
suffit de coller bnPrecis.lib dans dossier du projet
et d'inclure bnPrecis.h dans le module qui s'en sert.

Source / Exemple :


#include <windows.h>
#include "resource.h"
#include "bnPrecis.h"

DWORD res;
char szbuff[24];

DWORD __stdcall PerdreTemps(DWORD init, DWORD count)
{
  double d = 0.5;
  while(count) {
    init += count;
    d += (((double) d) / 3.5);
    count--;
  }
  return (init + (DWORD) d);
}

BOOL CALLBACK AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam)
{
  switch(mssg) {
    case WM_INITDIALOG:
      SetClassLong(hdlg, GCL_HICON, (long)LoadIcon(0, (LPCTSTR)IDI_APPLICATION));
      // affichage de la vitesse CPU
      SetDlgItemInt(hdlg, IDST_SPEEDPROC, bnCpuSpeedMghz(), 0);
      return 1;
    case WM_COMMAND:
      switch(wParam) {
        case IDBT_TICKS:
          bnTicksStart(); // INITIALISATION DES TICKS PROCESSEUR
          res = PerdreTemps(8, 0xFFFF); // proc a mesurer en ticks
          // recuperation des TICKS UTILISES par PerdreTemps()
          _ui64toa(bnTicksResult(), szbuff, 10);
          SetDlgItemText(hdlg, IDST_TICKS, szbuff);
          return 0;
        case IDBT_MILLI:
          bnMilliscndStart(); // INITIALISATION DES MILLISECONDES
          res = PerdreTemps(8, 0xFFFF); // proc a mesurer en millisecondes
          // recuperation des MILLISECONDES UTILISEES par PerdreTemps()
          _ui64toa(bnMilliscndResult(), szbuff, 10);
          SetDlgItemText(hdlg, IDST_MILLI, szbuff);
          return 0;
        case IDCANCEL: EndDialog(hdlg, 0);
      }
  }
  return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, int)
{
  // TEST qui suit est FORTEMENT RECOMMANDE !!!
  // DLL dira si timer haute resolution est disponible
  // NE PAS FAIRE DE MESURES si bnPrecisionOK() retourne ZERO, sinon crash !!!
  if(bnPrecisionOK()) 
    DialogBoxParam(hInstance, (LPCTSTR)IDD_APP, 0, AppDlgProc, 0);
  return 0;
}

Conclusion :


zip contient tout le projet format VS 2003.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.