Форум: "Потрепаться";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];
ВнизЧто означает "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;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.042 c