Чтобы не заморачиваться с написанием класса-обертки, думаю использовать лямбда + unique_ptr
, иначе говоря, пишу
HKEY key = nullptr;
auto regclose = [](HKEY *key) {
if ((key) && *key != nullptr) {
if (!RegCloseKey(*key))
std::wcout << L"Не удалось закрыть ключ реестра" << std::endl;
}
};
if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Target", 0, KEY_QUERY_VALUE, &key)) return 1;
std::unuque_ptr<HKEY, decltype(regclose)> halt(&key, regclose);
Насколько корректен будет этот код? Где потенциальные ошибки?
Ошибка тут в использовании указателя на объект с автоматическим временем хранения. Владение таким объектом не может быть передано в умный указатель. А владение объектом, на который ссылается дескриптор при таком подходе не передается.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Создал ATL Project, в него пытаюсь добавить простой ATL объектНазвал компонент Indexer, вижла создает соответсвующий интерфейс и класс Однако в файле...
Пытаюсь перенести проект с C++ на C#, однако в SystemMath C# отсутствует функция разложения на экспоненту и мантиссу (frexp в C++)
Я не понимаю, куда и что возвращает оператор returnВ функции main это говорит о завершении программы с кодом 0 (успешно), а что происходит в других...