function GetCPUSpeed: Double;
const
DelayTime = 500;
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
begin
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME__PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
Sleep(10);
asm
dw 310Fh
mov TimerLo, eax
mov TimerHi, edx
end;
Sleep(DelayTime);
asm
dw 310Fh
sub eax, TimerLo
sbb edx, TimerHi
mov TimerLo, eax
mov TimerHi, edx
end;
SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);
Result := TimerLo/(1000.0 * DelayTime);
end;
Определение тактовой частоты проца, поиск файлов в папке
1.Как определить частоту работы процессора средствами VC++ (и если возможно прочие характеристики машины)
2.Как получить список файлов в определенной папке?
Заранее спасибо! :)
нужно использовать поиск по форуму!! Темы не раз поднимались!!
1. Вот алгоритм от Фленова. Правда он на Delphi, но перевести на C++ думаю не проблема.
Кому интересно:
Код:
#include "stdafx.h"
#define _WIN32_WINNT 0x0400
#include "stdio.h"
#include "windows.h"
int
main(int argc, char *argv[])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
FILE* fp=0;
char myfile[20];
strcpy(myfile,"*.lvl"); //хочу искать файлы типа .lvl
printf ("Target file is %s.\n", myfile);
hFind = FindFirstFile(myfile, &FindFileData); //находим первый файл и задаем хэндл hFind
if (hFind == INVALID_HANDLE_VALUE) {
printf ("Invalid File Handle. Get Last Error reports %d\n", GetLastError ());
} else {
printf ("The first file found is %s\n", FindFileData.cFileName);
}
while(FindNextFile(hFind,&FindFileData)) //пока все еще есть файлы такого типа
{
printf ("The next file found is %s\n", FindFileData.cFileName); //выводим их тоже
}
FindClose(hFind);
return (0);
}
#define _WIN32_WINNT 0x0400
#include "stdio.h"
#include "windows.h"
int
main(int argc, char *argv[])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
FILE* fp=0;
char myfile[20];
strcpy(myfile,"*.lvl"); //хочу искать файлы типа .lvl
printf ("Target file is %s.\n", myfile);
hFind = FindFirstFile(myfile, &FindFileData); //находим первый файл и задаем хэндл hFind
if (hFind == INVALID_HANDLE_VALUE) {
printf ("Invalid File Handle. Get Last Error reports %d\n", GetLastError ());
} else {
printf ("The first file found is %s\n", FindFileData.cFileName);
}
while(FindNextFile(hFind,&FindFileData)) //пока все еще есть файлы такого типа
{
printf ("The next file found is %s\n", FindFileData.cFileName); //выводим их тоже
}
FindClose(hFind);
return (0);
}
Код:
#define xDW(X) \
{ \
__asm _emit (X) & 0xff \
__asm _emit (X>>8) & 0xff \
}
{ \
__asm _emit (X) & 0xff \
__asm _emit (X>>8) & 0xff \
}