Snippets
(Unterschied zwischen Versionen)
Zeile 22: | Zeile 22: | ||
*Quelle: [http://www.relisoft.com/win32/gdileaks.html Reliable Software - GDI Leaks] | *Quelle: [http://www.relisoft.com/win32/gdileaks.html Reliable Software - GDI Leaks] | ||
*Also Useful: [http://www.freedownloadmanager.org/downloads/GDIView_49337_p/free.htm GDIView] (Tool which shows which GDI resources are allocated from which process) | *Also Useful: [http://www.freedownloadmanager.org/downloads/GDIView_49337_p/free.htm GDIView] (Tool which shows which GDI resources are allocated from which process) | ||
+ | |||
+ | = Converting GUID to char* = | ||
+ | <pre><code class="cpp"> | ||
+ | #include <atlconv.h> | ||
+ | |||
+ | void main(void) | ||
+ | { | ||
+ | USES_CONVERSION; | ||
+ | OLECHAR* bstrGuid; | ||
+ | StringFromCLSID(<GUID>, &bstrGuid); | ||
+ | printf("%s\n", W2A(bstrGuid)); | ||
+ | ::CoTaskMemFree(bstrGuid); | ||
+ | } | ||
+ | </code></pre> |
Aktuelle Version vom 08:42, 20. Mär. 2012
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>