Текущий архив: 2004.05.30;
Скачать: CL | DM;
ВнизОбъект как var параметр ф-ции Найти похожие ветки
← →
NetworK © (2004-05-20 13:21) [0]Добрый день!
Скачал одну либу по работе со SCSI & ASPI интерфейсами с сайта torry.net. Вместе с ней идет пример работы. Но, когда я вытаюсь все это скомпилить мне выдается ошибка на вызов одной из функций:
Constant object cannot be passed as var parametr. Не могу понять в чем проблема. Кривой исходник или....
В описании библиотеки было написано, что она написана для Дельфи3-5. У меня 6. Может ли быть дело именно в этом? Если да, то как быть?
Спасибо всем откликнувшимся.
← →
Ega23 © (2004-05-20 13:26) [1]Функцию в студию!
← →
NetworK © (2004-05-20 14:07) [2]Вызов происходит так:
Result := not AspiCheck(SCSImodeSense(DID, $3F, @ModeSenseBuf, 255, SCSI_DEF));
Используемые переменные и константы описаны так:const
SCSI_DEF : TScsiDefaults =
(Timeout : 1000;
ReadTimeout : 10000;
AudioTimeout : 10000;
SpindleTimeout : 10000;
fOnCommandSending : nil;
fOnCommandSent : nil;
ModePageType : MPTcurrent;
Sense : (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));
var
ModeSenseBuf : array[0..255] of BYTE;
DID : TDeviceID;
Описана она в модуле так:function SCSImodeSense(DeviceID : TdeviceID;
PAGE : BYTE; Buf : pointer; BufLen : DWORD;
var Sdf : TScsiDefaults) : TScsiError;
Если что еще, говорите, напишу
← →
Reindeer Moss Eater © (2004-05-20 14:10) [3]function SCSImodeSense(DeviceID : TdeviceID;
PAGE : BYTE; Buf : pointer; BufLen : DWORD;
var Sdf : TScsiDefaults) : TScsiError;
const SCSI_DEF : TScsiDefaults =
(Timeout : 1000;.....
Вызов происходит так:
Result := not AspiCheck(SCSImodeSense(DID, $3F, @ModeSenseBuf, 255, SCSI_DEF));
Ну и что же мы хотели?
Время констант, которым можно было присваивать значения прошло давно.
← →
NetworK © (2004-05-20 14:17) [4]И как быть? Переписывать всю либу линиво, есть какой-нибудь выход? И что в Д5 это прокатывало?
← →
Ega23 © (2004-05-20 14:19) [5]Заведи переменную, например,
MySCSI_DEF : TScsiDefaults;
Приравняй её константе SCSI_DEF :
MySCSI_DEF := SCSI_DEF;
А потом передавай её в качестве параметра в SCSImodeSense :
Result := not AspiCheck(SCSImodeSense(DID, $3F, @ModeSenseBuf, 255, MySCSI_DEF));
← →
Reindeer Moss Eater © (2004-05-20 14:19) [6]Что бы не переписвыать "всю либу", попробуй подумать, может можно переписать одно слово?
← →
Smithson © (2004-05-20 14:20) [7]Создать еще один объект того типа TScsiDefaults, присвоить ему значение SCSI_DEF и его-то и передать в функцию.
← →
Ega23 © (2004-05-20 14:21) [8]Reindeer Moss Eater © (20.05.04 14:19) [6]
Это ты про var?
← →
Ega23 © (2004-05-20 14:21) [9]Smithson © (20.05.04 14:20) [7]
ОБЪЕКТ????!?!?!?
← →
NetworK © (2004-05-20 14:22) [10]:) Спасибо
Страницы: 1 вся ветка
Текущий архив: 2004.05.30;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.033 c