Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование CreateFile для открытия файла [D5, D6, NT4, Win2k]


Andrey-k ©   (2002-04-06 12:30:00) 

Мне необходимо открыть файл на чтение/запись так, чтобы его можно было открыть в этот момент повторно другим объектом так же
на чтение и запись. Я делаю так, но при таком открытии из другого приложения его даже просмотреть нельзя. Помогите с параметрами.

xF:=CreateFile(pchar(fDbFileName), // pointer to name of the file
GENERIC_ALL, // access (read-write) mode
FILE_SHARE_WRITE OR FILE_SHARE_READ, // share mode
nil, // pointer to security attributes
OPEN_EXISTING, // how to create
FILE_ATTRIBUTE_NORMAL, // file attributes
GENERIC_READ{GENERIC_WRITE AND GENERIC_READ});


Andrey-k   (2002-04-07 03:29:00) [1]

но я разобрался с CreatFile
GENERIC_ALL надо заменить на GENERIC_WRITE or GENERIC_READ

и так наверно будет быстрее


SPeller   (2002-04-07 03:05:00) [2]

Не знаю, я ей постоянно пользуюсь и всё отлично работает.


Andrey-k   (2002-04-06 21:05:00) [3]

Понимаешь, в helpe сказано, что OpenFile используют только для совместимости с 16-bit versions of Windows по этому не хотелось бы, но все равно спасибо. Я гляну параметры.


SPeller   (2002-04-06 15:45:00) [4]

Помоему, лучше взять OpenFile.


var os:ofstruct;
begin
...
os.cbytes:=sizeof(os);
OpenFile(pchar(fDbFileName),@os,OF_READWRITE or SHARE_DENY_NONE);


Ошибка твоя в том, что
SHARE_DENY_READ - Запрещаетчтение другими программами
SHARE_DENY_WRITE - Запрещает запись.


Наверх

Титульная страница Поиск, карта сайта Написать письмо