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

Вниз

LockFile - вопрос чайника   Найти похожие ветки 

 
DmitryNekl ©   (2003-06-26 14:27) [0]

Господа, помогите, пожалуйста.

Вопрос следующий: как использовать функции LockFile и UnLockFile в программах на Delphi (если можно, с примером на Delphi)?

Можно на проблему посмотреть шире: я не понимаю, как вообще использовать WinAPI-функции в программах на Delphi, т.к. в описании интерфейса функций приводятся типы аргументов, которых нет в Паскале. И что с этими типами делать - большой вопрос для меня.
Если Вы можете дать ссылочку на статью, где это доступно описывается, буду весьма благодарен.

Т.е. конкретно по LockFile. Описана она так:

BOOL LockFile(
HANDLE hFile,
DWORD dwFileOffsetLow,
DWORD dwFileOffsetHigh,
DWORD nNumberOfBytesToLockLow,
DWORD nNumberOfBytesToLockHigh
);


Итак, вопрос: где я могу узнать, какой параметр что именно обозначает? И какому типу соответствует какой тип в Паскале?
По возможности, приведите пример использования LockFile на Delphi.

Заранее огромное спасибо.


 
Acidy ©   (2003-06-26 15:20) [1]

В кладовке есть компонента TFileLocker или что-то в этом роде .....


 
DmitryNekl ©   (2003-06-26 15:23) [2]

Спасибо! Но мне больше разобраться хочется :)


 
Игорь Шевченко ©   (2003-06-26 15:30) [3]

RTFS: \Program Files\Borland\Delphi\Source\Rtl\Win\Windows.pas


 
DmitryNekl ©   (2003-06-26 15:54) [4]

В файле Windows.pas написано:

function LockFile(hFile: THandle; dwFileOffsetLow, dwFileOffsetHigh: DWORD; nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh: DWORD): BOOL; stdcall;

и еще пара таких объявлений. Чем это проясняет ситуацию? :(


 
Игорь Шевченко ©   (2003-06-26 16:23) [5]

А узнать, какой параметр что обозначает, можно, выбрав в меню Help пункт Windows SDK и аккуратно набрав слово LockFile - там много чего написано, поверь.


 
VMcL ©   (2003-06-26 21:16) [6]

>DmitryNekl © (26.06.03 14:27)

>...приводятся типы аргументов, которых нет в Паскале.

Неужели? А пункт меню Find Declaration (Ctrl+LeftClick) уже отменили?


 
DmitryNekl ©   (2003-06-28 20:05) [7]

Спасибо всем, кто пытался мне помочь... Пока я еще не смог разобраться. И продолжаю надеяться на Вашу помощь :).

2 Игорь Шевченко:
Открыл, проверил. Параметры есть, что обозначают - понятней не стало. Примера - нету.

2 VMcL:

По Find Declaration находится строка:
function LockFile; external kernel32 name "LockFile";
И чем мне это может помочь?

Господа, неужели ни у кого нет примера? Ведь лучше один раз увидеть...


 
vgb ©   (2003-06-28 22:08) [8]

Попробую помочь, чем смогу (сам чайник в этой области)
Для начала, разобреремся с параметрами функции.
Windows SDK гласит:

hFile - хэндл блокируемого файла
dwFileOffsetLow - младшее слово байтового смещения в файле, где блокировка должна начинаться.
dwFileOffsetHigh - старшее слово байтового смещения в файле, где блокировка должна начинаться.
nNumberOfBytesToLockLow - младшее слово длины байтовой области, которая должна блокироваться.
nNumberOfBytesToLockHigh - старшее слово длины байтовой области, которая должна блокироваться.

ИМХО Значит для блокировки части файла вызываешь функцию следующим образом (работоспособность не проверял):

var
FileHandle: Handle;
Start, Length: DWord;

...

LockFile(FileHandle, LoWord(Start), HiWord(Start), LoWord(Length), HiWord(Length));


Ну, а если желаешь заблокировать файл целиком, то Start:= 0 и Length, соответственно, равен размеру файла

ЗЫ: Хэндл файла можешь получить при помощи функции CreateFile

Мастера, поправте, если не прав.


 
Anatoly Podgoretsky ©   (2003-06-28 22:19) [9]

Очень серьезная ошибка, параметры не Word, а dWord
А в остальном ошибки нет


 
DmitryNekl ©   (2003-06-28 22:44) [10]

2 Anatoly Podgoretsky

Наверное, самый идиотский вопрос: а в чем ошибка? Start и length и объявлены как DWord...

Спасибо!!!!!! :)))


 
DmitryNekl ©   (2003-06-28 22:45) [11]

Все понял, торможу :)))



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

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

Наверх




Память: 0.49 MB
Время: 0.01 c
14-92242
лсдишник
2003-08-09 19:15
2003.08.28
Помогите выьрать LCD 17


1-92103
Ki2Ler
2003-08-15 12:48
2003.08.28
Трей


14-92172
tria
2003-08-11 14:44
2003.08.28
Подскажите плиз что такое Б деревья и где про них почитать можно?


14-92193
` frizZ. `
2003-08-10 19:46
2003.08.28
Задачка


7-92288
WMag
2003-06-13 23:29
2003.08.28
Символ разделения целой и дробной частей