Snippets
Version vom 08:42, 20. Mär. 2012 bei RolfNeumann (Diskussion | Beiträge)
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;
};
- Quelle: Reliable Software - GDI Leaks
- Also Useful: GDIView (Tool which shows which GDI resources are allocated from which process)
Converting GUID to char*
<code class="cpp">
#include <atlconv.h>
void main(void)
{
USES_CONVERSION;
OLECHAR* bstrGuid;
StringFromCLSID(<GUID>, &bstrGuid);
printf("%s\n", W2A(bstrGuid));
::CoTaskMemFree(bstrGuid);
}
</code>