Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

Win32FindData !   Найти похожие ветки 

 
psa247 ©   (2005-12-19 15:33) [0]

Подскажите, как правильно закрыть хэндл ?

function TF.Get_File_size(name : string): INT64;
var FD : TWin32FindData;
  FH : THandle;
begin
  EUID:= "{D39E438C-1C08-4D27-9039-FE781A512700}";
  Result:= -1;
  FH:= FindFirstFile(PChar(name), FD);
  if FH = INVALID_HANDLE_VALUE then exit;
  try
    Result:= FD.nFileSizeHigh;
    Result:= Result shl 32;
    Result:= Result + FD.nFileSizeLow;
finally
  try
  FindClose(FH);
  //CloseHandle(FH);
  except
  ShowMessage(SysErrorMessage(GetLastError));
  end;
  end;
end;


GetLastError дает 0


 
psa247 ©   (2005-12-19 15:35) [1]

Забыл: CloseHandle дает External exception C0000008


 
begin...end ©   (2005-12-19 15:40) [2]

CloseHandle здесь не нужно. Нужно только FindClose.

> Result:= FD.nFileSizeHigh;
> Result:= Result shl 32;
> Result:= Result + FD.nFileSizeLow;

Int64Rec(Result).Lo := FD.nFileSizeLow;
Int64Rec(Result).Hi := FD.nFileSizeHigh;

Так красивее, ИМХО.


 
psa247 ©   (2005-12-19 15:43) [3]


> begin...end ©

На FindClose пишет, что параметры не идентичны.


 
begin...end ©   (2005-12-19 15:45) [4]

> psa247 ©   (19.12.05 15:43) [3]

Это потому, что вызывается FindClose из SysUtils, а здесь нужно Windows.FindClose(FH).


 
psa247 ©   (2005-12-19 15:52) [5]

Ёлы-палы... :)


> begin...end ©

Спасибо.



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

Форум: "WinAPI";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.013 c
15-1139834037
X9
2006-02-13 15:33
2006.03.12
Помогите с алгеброй


15-1139584846
Vendict
2006-02-10 18:20
2006.03.12
Magic Forum


3-1137647384
neat
2006-01-19 08:09
2006.03.12
Отменить сохранение редактируемой записи


15-1139941005
Кто - то
2006-02-14 21:16
2006.03.12
Вопрос законопослушного программиста


2-1140769646
unlink
2006-02-24 11:27
2006.03.12
сравнение методов сортировки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский