<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Handle wrappen?]]></title><description><![CDATA[<p>Folgendes Problem: Ich habe eine Klasse, welche intern ein Handle speichert und es beim Aufruf des Destruktors mit CloseHandle() freigibt. Wie kann ich jetzt den Kopierkonstruktor implementieren? Dazu müsste ich entweder das Handle klonen (dazu finde ich absolut gar nichts in der WinAPI) oder eine sehr gute Idee haben. Ansonsten besteht die Gefahr, dass das Handle vorzeitig freigegeben wird. Wie löst man so etwas &quot;professionell&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307264/handle-wrappen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 20:50:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307264.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Aug 2012 15:38:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Handle wrappen? on Tue, 21 Aug 2012 15:38:44 GMT]]></title><description><![CDATA[<p>Folgendes Problem: Ich habe eine Klasse, welche intern ein Handle speichert und es beim Aufruf des Destruktors mit CloseHandle() freigibt. Wie kann ich jetzt den Kopierkonstruktor implementieren? Dazu müsste ich entweder das Handle klonen (dazu finde ich absolut gar nichts in der WinAPI) oder eine sehr gute Idee haben. Ansonsten besteht die Gefahr, dass das Handle vorzeitig freigegeben wird. Wie löst man so etwas &quot;professionell&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244161</guid><dc:creator><![CDATA[HANDLE]]></dc:creator><pubDate>Tue, 21 Aug 2012 15:38:44 GMT</pubDate></item><item><title><![CDATA[Reply to Handle wrappen? on Tue, 21 Aug 2012 15:48:13 GMT]]></title><description><![CDATA[<p>Loesung mit reinem C++: Es ist eine &quot;shared resource&quot;, also nutze einen &quot;shared pointer&quot; wie shared_ptr bzw. wrappe das Handle in eine Klasse, die reference counting unterstuetzt.</p>
<blockquote>
<p>dazu finde ich absolut gar nichts in der WinAPI</p>
</blockquote>
<p>Ich schon. Die WinAPI-Loesung: <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms724251(v=vs.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/windows/desktop/ms724251(v=vs.85).aspx</a></p>
<p>Und ja, du bist im falschen Forum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244165</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 21 Aug 2012 15:48:13 GMT</pubDate></item><item><title><![CDATA[Reply to Handle wrappen? on Tue, 21 Aug 2012 15:45:33 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Es ist eine &quot;shared resource&quot;, also nutze einen &quot;shared pointer&quot; wie shared_ptr bzw. wrappe das Handle in eine Klasse, die reference counting unterstuetzt.</p>
</blockquote>
<p>Oder, je nachdem, verbietet ein kopieren der Klasse gleich komplett.</p>
<p>zB wenn es eine File-Klasse ist und es sich um ein File Handle hält, dann verbietet man idR das kopieren.</p>
<p>Kommt auf die Situation an. Oft ist natürlich ein shared_ptr eine gute Wahl.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244167</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 21 Aug 2012 15:45:33 GMT</pubDate></item><item><title><![CDATA[Reply to Handle wrappen? on Tue, 21 Aug 2012 15:56:24 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Und ja, du bist im falschen Forum.
</code></pre>
<p>Och wollte eigentlich zuerst im WinAPI-Forum posten, aber ich war mir unsicher und wollte lieber eine C++-Lösung sehen, da mir dieses Problem letztendlich nicht nur unter Windows begegnen wird. Ich habe den Nutzen aber anscheinend falsch verstanden, da ich dachte es handelt sich um eine Funktion um Handle für Child-Prozesse zu erstellen und deren Rechte festzulegen (oder so ähnlich -.-).</p>
<p>Danke für eure Hilfe. In meinem Fall wird es wohl das beste sein, das Kopieren zu verbieten. Es macht praktisch gesehen auch gar keinen Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244176</guid><dc:creator><![CDATA[HANDLE]]></dc:creator><pubDate>Tue, 21 Aug 2012 15:56:24 GMT</pubDate></item><item><title><![CDATA[Reply to Handle wrappen? on Tue, 21 Aug 2012 15:57:26 GMT]]></title><description><![CDATA[<p>*Ich [statt Och] (tschuldigung für Doppelpost)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244178</guid><dc:creator><![CDATA[HANDLE]]></dc:creator><pubDate>Tue, 21 Aug 2012 15:57:26 GMT</pubDate></item><item><title><![CDATA[Reply to Handle wrappen? on Tue, 21 Aug 2012 16:20:35 GMT]]></title><description><![CDATA[<p>Schau dir mal an was ein Move Konstruktor ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244185</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Tue, 21 Aug 2012 16:20:35 GMT</pubDate></item></channel></rss>