XT Knowledge Base
Hauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz | Aktuelle Version

Snippets

(Unterschied zwischen Versionen)

Zeile 6: Zeile 6:
     DbgGuiLeak ()
     DbgGuiLeak ()
     {
     {
-
         _guiResCount = ::GetGuiResources (::GetCurrentProcess (),
+
         _guiResCount = ::GetGuiResources (::GetCurrentProcess (), GR_GDIOBJECTS);
-
                                          GR_GDIOBJECTS);
+
     }
     }
     ~DbgGuiLeak ()
     ~DbgGuiLeak ()
     {
     {
-
         int leaks = ::GetGuiResources (::GetCurrentProcess (),  
+
         int leaks = ::GetGuiResources (::GetCurrentProcess (), GR_GDIOBJECTS) - _guiResCount;
-
                                      GR_GDIOBJECTS) - _guiResCount;
+
         if (leaks != 0)
         if (leaks != 0)
         {
         {

Version vom 07:51, 25. Sep. 2009

Finding GDI Leaks by counting GDI objects

class DbgGuiLeak
{
public:
    DbgGuiLeak ()
    {
        _guiResCount = ::GetGuiResources (::GetCurrentProcess (), GR_GDIOBJECTS);
    }
    ~DbgGuiLeak ()
    {
        int leaks = ::GetGuiResources (::GetCurrentProcess (), GR_GDIOBJECTS) - _guiResCount;
        if (leaks != 0)
        {
            std::cout << "Gui Resources Leaked: " << leaks << std::endl;
        }
    }
private:
    unsigned _guiResCount;
};