Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.25;
Скачать: CL | DM;

Вниз

Что означает "absolute", и почему он не работает?   Найти похожие ветки 

 
yuryzh ©   (2005-08-29 15:49) [40]

Этот пример взят из реального кода.
var
  DeviceMode : TDevMode absolute 0;
ChangeDisplaySettings(DeviceMode, 0)

Просто в оригинале эта функция описана как
LONG ChangeDisplaySettings(
 LPDEVMODE lpDevMode,  // graphics mode
 DWORD dwflags         // graphics mode options
);

а в Delphi
function ChangeDisplaySettings(
 var lpDevMode: TDeviceMode;
 dwFlags: DWORD): Longint; stdcall;

и для передачи var параметра, адрес которого есть nil использовалась конструкция
DeviceMode : TDevMode absolute 0;


 
Джо ©   (2005-08-29 15:53) [41]

Вот пример из модуля MxArrays.pas:

function CmpWord(var item1, item2): Integer;
var
 w1: word absolute item1;
 w2: word absolute item2;
 i1, i2: Integer;
begin
 ...


 
Игорь Шевченко ©   (2005-08-29 16:08) [42]

yuryzh ©   (29.08.05 15:49) [40]


> ChangeDisplaySettings(DeviceMode, 0)


ChangeDisplaySettings(PDeviceMode(nil)^, 0)


 
Германн ©   (2005-08-30 01:10) [43]

2 Anatoly Podgoretsky ©   (29.08.05 09:06) [39]

 >Юрий Зотов ©   (29.08.05 05:16) [34]
>Что реализуется также с помощью вариантных записей или что еще >лучше приведения. Ценность absolute была высока в программах >реального режима, для указания абсолютных аппаратных ресурсов, >но часто использовалась не совсем по делу. И перенос этой >технологии на Дельфи не обоснован, если не сказать прямо, как >правило приносящий больше вреда, чем реальной пользы.

Имхо, Вы, Анатолий, правы по сути.
Но с истормческой точки зрения - не совсем.
А уж для тех, кто вроде меня имел дело с иными PASCAL"ями, нежели TP, так уж и вовсе не правы!
Некоторые компиляторы, с которыми мне пришдось работать не понимали ни "вариантные записи", ни "приведение типов"!

Но поскольку тут форум Дельфи, мои замечания, имхо offtopic.



Страницы: 1 2 вся ветка

Текущий архив: 2005.09.25;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.068 c
1-1125862322
ArtemESC
2005-09-04 23:32
2005.09.25
"Выкомпилировать" функцию


6-1117473192
juice
2005-05-30 21:13
2005.09.25
Подводная часть айсберга TCP/IP


14-1125250066
Ксардас
2005-08-28 21:27
2005.09.25
Что это за сетевая атака такая Helkern?


2-1124013084
Гость22
2005-08-14 13:51
2005.09.25
Есть дата в виде 14.08.2005 Как переделать на 14/08/2005


2-1124277717
PIF
2005-08-17 15:21
2005.09.25
Ошибка при записи в файл