Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как определить наличие сопроцессора?

Вопрос:

Как определить наличие сопроцессора?

Ответ:

В отличие от общепринятого мнения не всее клоны 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;

[ Назад ] [ Оглавление ] [ Далее ]

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог