Kurze Frage wollte ich fragen, ich habe eine Direct2D Fabrik und wenn ich bereit zu bereinigen bin immer würde ich löschen anrufen oder Verwendung Release-Mitglied? Ich sehe einige Tutorials, die nur explizit aufrufen löschen, so war ich gespannt, was sicherer ist, wenn nicht alle das Freigabeelement tut, ist Anruf im Hintergrund löschen etc.`Windows COM C++ - Mit löschen oder Release
Graphics::~Graphics() {
if (Factory) //Factory->Release(); or delete Factory;
if (Render) //Render->Release(); or delete Render;
}
„Fehler löschen rufen immer für Speicher von einem externen DLL zugewiesen, weil sie neu/löschen nicht Ihr neues bieten kann/löschen“ ist nicht ganz richtig. Es ist möglich, dass zwei oder mehr Windows-Module dieselbe Instanz derselben Laufzeitbibliothek verwenden, nämlich mit der Laufzeitbibliothek als DLL. Es ist auch möglich, eine klassenspezifische Zuweisung und Freigabe zu definieren, bei der der richtige instanzspezifische Speichermanager verwendet wird. –
@ Cheersandhth.-Alf - natürlich durchaus möglich, dass 2 verschiedene 'pe' Module die gleiche Implementierung von' new/delete' haben - so wird dieses Formal bearbeitet, aber Event wird in diesem Fall ein logischer Fehler sein. – RbMm
Nein, es gibt keinen logischen Fehler, wenn Sie etwas tun, das für den von Ihnen kontrollierten Code völlig in Ordnung ist. –