Как определить наличие сопроцессора?
Материал из DRKB
Как определить наличие сопроцессора?[править | править код]
В отличие от общепринятого мнения не все клоны 486/586/686/ и Pentium имеют сопроцессор для вычислений с плавающей запятой. В примере определяется наличие сопроцессора и под Win16 и под Win32.
Пример:
{$IFDEF WIN32}
uses Registry;
{$ENDIF}
function HasCoProcesser: bool;
{$IFDEF WIN32}
var
TheKey: hKey;
{$ENDIF}
begin
Result := true;
{$IFNDEF WIN32}
if GetWinFlags and Wf_80x87 = 0 then
Result := false;
{$ELSE}
if RegOpenKeyEx(HKEY_LOCAL_MACHINE,
'HARDWARE\DESCRIPTION\System\FloatingPointProcessor', 0,
KEY_EXECUTE, TheKey) <> ERROR_SUCCESS then
Result := false;
RegCloseKey(TheKey);
{$ENDIF}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if HasCoProcesser then
ShowMessage('Has CoProcessor')
else
ShowMessage('No CoProcessor - Windows Emulation Mode');
end;
DELPHI VCL FAQ Перевод с английского Подборку, перевод и адаптацию материала подготовил Aziz(JINX) специально для Королевства Дельфи
Source: Взято из
ID: 01432