178 / 68 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
1

Должен ли я заботиться о закрытии переменной типа HANDLE, объявленной в теле функции?

29.09.2018, 08:31. Показов 1174. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем здравствуйте.

C++
1
2
3
4
5
6
7
void AnyFunction()
{
    HANDLE h;
    h = CreateToolhelp32Snapshot(2, 0);
    // работаем с h ...
    CloseHandle(h);
}
Нужна ли в приведенном куске кода строка
C++
1
CloseHandle(h);
?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2018, 08:31
Ответы с готовыми решениями:

Доступ к переменной, объявленной в теле цикла
Здравствуйте, есть следующий код using System; using System.Collections.Generic; using...

Как обратиться к переменной, объявленной внутри функции?
Есть вот такой код: void __fastcall TForm1::FormCreate(TObject *Sender) {...

Обращение к переменной, объявленной в будущем
Возможно ли обратится к переменной в PHP, объявленной в будущем? Поясню ситуацию, есть

Уничтожается значение объявленной переменной
Программа начинается здесь: dailyModel.cpp bool DailyModel::updateDailys() { bool...

4
328 / 81 / 2
Регистрация: 21.07.2018
Сообщений: 112
Записей в блоге: 1
29.09.2018, 08:48 2
Если не закрыть, система будет думать, что объект ещё нужен.
1
178 / 68 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
29.09.2018, 09:58  [ТС] 3
ОС, но ведь он (объект) существует только внутри функции, а на выходе из неё должен автоматически уничтожаться как любая её переменная?!
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,428
Записей в блоге: 8
29.09.2018, 10:27 4
Лучший ответ Сообщение было отмечено jkrnd как решение

Решение

HANDLE - указатель (и при выходе из функции будет "забыт" только сам указатель, а не то, на что он указывает), так что нужно закрывать его, когда объект больше не нужен.
1
328 / 81 / 2
Регистрация: 21.07.2018
Сообщений: 112
Записей в блоге: 1
29.09.2018, 19:47 5
jkrnd, Если хочется, чтобы на автомате подчищалось, можно обернуть в простой класс и закрывать в деструкторе.
C++
1
2
    struct h{  ~h(){ close(handle);}; int handle; }
        file{ open("~/.profile",0) };
1
29.09.2018, 19:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2018, 19:47
Помогаю со студенческими работами здесь

Доступ к переменной, объявленной вне метода
Здравствуйте все, кто решил заглянуть в эту тему =) Суть вопроса такова. У меня есть переменная,...

Доступ к переменной, объявлённой в другом блоке
Здравствуйте! Возможно ли как-нибудь создатъ переменную внутри какого-либо блока (например цикла)...

Как обратиться к переменной объявленной в скрипте?
Нужно обратиться к переменной blockInst из скрипта SpawnBlocks , как это правильно сделать ?

Как в запросе сделать выборку по объявленной переменной?
Добрый день! Очень прошу помочь, с утра долблю и не получается. Есть Delphi, таблица HB_ruk в...

Получение в DLL переменной объявленной в ност-приложении
То есть <exe -проект> // может потребоваться в любой момент public DatasetForAllDLLS as...

Расширить область видимости переменной, объявленной в блоке if
string s1 = "1"; if (s1 == "1") { string info = "dll"; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru