Главная страница
    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.011 c
11-1121302017
stals
2005-07-14 04:46
2006.03.12
exe-шник (? kb)


8-1128537775
LAnd
2005-10-05 22:42
2006.03.12
Вырезать часть jpeg и сохранить ее в другой jpeg


15-1139920034
Alexey V.
2006-02-14 15:27
2006.03.12
Как такое делается? Впервые такое встретил


3-1137743305
ThreeTONE
2006-01-20 10:48
2006.03.12
Добавить выбранные по определенному условию записи в эту жтаблицу


11-1121017425
Serg777
2005-07-10 21:43
2006.03.12
WS_POPUP и ListBox = постоянная перерисовка





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский