<?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[Klasse im Shared Bereich halten]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich grüble über eine Lösung, wie man eine Klasse im Shared Member-Bereich einer DLL (über #pragma data_seg) halten kann. Ist das überhaupt möglich? Die Klasse besitzt ihrerseits Member, die dynamisch erweitert werden können (Maps).</p>
<p>Derzeit habe ich einen Pointer in der Shared Sektion stehen, dem beim ersten Aufruf (erste Istanzierung) der DLL eine Klasseninstanz zugewiesen wird. Dumm ist dabei, das folgende DLL-Instanzen, die den Pointer verwenden, aber keinen Zugriff auf die Member der Klasse bekommen, weil die Werte alle uninitialisiert sind.</p>
<p>Als Alternative hatte ich schon an eine Speicherreservierung für die Klasse über GlobalAlloc gedacht, aber das geht nicht recht, weil dann der Konstruktor der Klasse nicht aufgerufen wird.</p>
<p>Für hilfreiche Tipps und Ratschläge schon mal im Voraus vielen Dank!<br />
Wes</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190633/klasse-im-shared-bereich-halten</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 10:46:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190633.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 24 Aug 2007 15:59:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse im Shared Bereich halten on Fri, 24 Aug 2007 15:59:16 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich grüble über eine Lösung, wie man eine Klasse im Shared Member-Bereich einer DLL (über #pragma data_seg) halten kann. Ist das überhaupt möglich? Die Klasse besitzt ihrerseits Member, die dynamisch erweitert werden können (Maps).</p>
<p>Derzeit habe ich einen Pointer in der Shared Sektion stehen, dem beim ersten Aufruf (erste Istanzierung) der DLL eine Klasseninstanz zugewiesen wird. Dumm ist dabei, das folgende DLL-Instanzen, die den Pointer verwenden, aber keinen Zugriff auf die Member der Klasse bekommen, weil die Werte alle uninitialisiert sind.</p>
<p>Als Alternative hatte ich schon an eine Speicherreservierung für die Klasse über GlobalAlloc gedacht, aber das geht nicht recht, weil dann der Konstruktor der Klasse nicht aufgerufen wird.</p>
<p>Für hilfreiche Tipps und Ratschläge schon mal im Voraus vielen Dank!<br />
Wes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351311</guid><dc:creator><![CDATA[Wesley67]]></dc:creator><pubDate>Fri, 24 Aug 2007 15:59:16 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse im Shared Bereich halten on Fri, 24 Aug 2007 18:00:24 GMT]]></title><description><![CDATA[<p>Ich bin mir nicht sicher ob ich dein Problem verstanden hab. Aber kannst du deiner DLL nicht einfach eine</p>
<pre><code class="language-cpp">Init(void* classInstance)
</code></pre>
<p>hinzufügen? Die rufst du dann halt auf um deinen DLLs die Klasseninstanz zu zuweisen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351373</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Fri, 24 Aug 2007 18:00:24 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse im Shared Bereich halten on Fri, 24 Aug 2007 19:33:12 GMT]]></title><description><![CDATA[<p>Eine einfache Klasse (die z.B. keine strings/container o.ä. enthält) kann man mit placement new im shared Bereich anlegen.<br />
Für Dinge wie eben strings, container etc. braucht man einen allocator der das macht.</p>
<p>Guck mal in der boost, da gibt es irgendwo eine Library die genau sowas kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351437</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 24 Aug 2007 19:33:12 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse im Shared Bereich halten on Sat, 25 Aug 2007 10:11:54 GMT]]></title><description><![CDATA[<p>Man sollte vermeiden Klassen in slch einen shared Bereich zu legen. Am besten man bleibt bei einem POD, sprich einer normalen Struktur.<br />
Sobald eine virtuelle FUnktion im Spiel ist gerät eine Klasse in solch einem Bereich außer Rand und Band.</p>
<p>An diesen Schnittstellen sollte die Daten auf einfachste Weise mit elementaren C Objekten und puren Handles und Strukturen abgesichert und gespeichert werden.<br />
Alles was mit dynamischer Allokation daherkommt und arbeitet verbietet sich von selbst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351705</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 25 Aug 2007 10:11:54 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse im Shared Bereich halten on Mon, 27 Aug 2007 10:16:36 GMT]]></title><description><![CDATA[<p>Danke für die Antworten.<br />
Dann werde ich wohl besser nur einige Member im Shared Bereich unterbringen und diese dann halt per Pointer / Referenz in die Nonshared Klasse einbinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352854</guid><dc:creator><![CDATA[Wesley67]]></dc:creator><pubDate>Mon, 27 Aug 2007 10:16:36 GMT</pubDate></item></channel></rss>