Developer knowledge network · moderated exchange

UnreliableCode қауымдастығы

Әзірлеушілерді зерттеу, кері инженерия және кодтау қауымдастығы

Knowledge indexТірі
4Categories
919Threads
2.8KЖазбалар
Tutorial

RAII smart pointer wrappers for Win32 HANDLEs and Direct3D resources

ptr_arithmetic
C++ Wizard
MEMBER
Өкіл: 162
Қосылу күні: May 2018
Хабарламалар: 73
Рахмет: 42
1 ай бұрын · Jul 16, 2026 8:52 PM
#1

Never leak process handles or DirectX textures again using RAII with custom deleters:

CPP
struct HandleDeleter {
    void operator()(HANDLE h) const {
        if (h && h != INVALID_HANDLE_VALUE) CloseHandle(h);
    }
};
using UniqueHandle = std::unique_ptr<void, HandleDeleter>;

// Usage:
UniqueHandle hProcess(OpenProcess(PROCESS_VM_READ, FALSE, pid));
// Handle automatically closes on function return or exception!
vtable_slayer
Senior Reverser
MEMBER
Өкіл: 215
Қосылу күні: Mar 2018
Хабарламалар: 86
Рахмет: 61
1 ай бұрын · Jul 17, 2026 1:15 AM
#2

You can do the same for Direct3D COM objects using Microsoft::WRL::ComPtr<ID3D11Device>. Super clean.

segfault_sam
Member
MEMBER
Өкіл: 68
Қосылу күні: Mar 2019
Хабарламалар: 22
Рахмет: 57
1 ай бұрын · Jul 17, 2026 11:24 AM
#3

RAII is why modern C++ is so robust. Zero resource leaks.