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

Вниз

Ошибка при удалении File Mapping   Найти похожие ветки 

 
N   (2002-11-10 16:57) [0]

Здравствуйте.
Открываю файл, создаю два FileMapping, тут же особождаю их, в результате, при попытке закрыть файл, возникает ошибка "Неверный дескриптор", и файл остается занятым до следующей перезагрузки. Если содать только один FileMapping, то все нормально. Ни размер, мэппинга, ни изменение имени объекта не влияют на ситуацию. :(
Спасибо заранее.


procedure TForm1.Button1Click(Sender: TObject);
var
MyFile, FileMap1, FileMap2: THandle;

function CreateMapping: THandle;
begin
Result := CreateFileMapping(
MyFile, // handle to file to map
nil, // optional security attributes
PAGE_READWRITE, // protection for mapping object
0, // high-order 32 bits of object size
1024, // low-order 32 bits of object size
nil); // name of file-mapping object
end;
begin
MyFile := CreateFile(
"Test.bin", // file name
GENERIC_READ or GENERIC_WRITE, // access mode
0, // share mode
nil, // SD
OPEN_ALWAYS, // how to create
FILE_ATTRIBUTE_NORMAL or FILE_FLAG_RANDOM_ACCESS, // file attributes
0); // handle to template file

FileMap1 := CreateMapping;
ShowMessage(SysErrorMessage(GetLastError));

FileMap2 := CreateMapping;
ShowMessage(SysErrorMessage(GetLastError));

CloseHandle(FileMap1);
ShowMessage(SysErrorMessage(GetLastError));

CloseHandle(FileMap2);
ShowMessage(SysErrorMessage(GetLastError));

CloseHandle(MyFile);
ShowMessage(SysErrorMessage(GetLastError));
end;


 
Cobalt ©   (2002-11-11 19:27) [1]

Дело в том, что у вас FileMap1 и FileMap2, скорее всего - одинаковые, ведь эти файлы - одно и тоже, и для одного АП у них должен быть один и тот же Handle. Если же вам надо обращаться к одному файлу через несколько "ручек", то смотрите ф-ию DuplicateHandle
P.S. кстати, после какого закрытия выдаются ошибки?



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

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

Наверх




Память: 0.47 MB
Время: 0.016 c
3-85831
Fishka
2002-12-06 14:52
2002.12.26
DBCtrlGrid - добавление пустой записи?


1-85882
Cheshit
2002-12-14 18:55
2002.12.26
Не рисует! Помогите пожалуйста


14-86167
p_albert77@mail.ru
2002-12-06 19:04
2002.12.26
Как правильно записывать на CD-болванки?


1-85959
Vlad
2002-12-15 16:29
2002.12.26
Подсветка синтаксиса в тексте


14-86164
TTCustomDelphiMaster
2002-12-06 15:34
2002.12.26
Пятница - банно стаканный день