<?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[DLL &amp;lt;-&amp;gt; Loader Shared Memory funktioniert nicht.]]></title><description><![CDATA[<p>Hallo, ich bin zwar neu hier aber ich muss trotzdem mal was fragen.</p>
<p>Ich hab mir eine dll geschrieben und möchte Werte aus der Werte in mein Hauptprogramm übergeben (loader)</p>
<p>leider funktioniert das mit dem &quot;sharedmemory&quot; und den #pragmas nicht so ganz<br />
- Anmerkung ich nutze MSVC++ 6.0</p>
<p>hier ist ein Sourceschnipsel der dll:</p>
<pre><code class="language-cpp">// Variablen der dll.cpp
#pragma data_seg(&quot;.SegmentXyZ&quot;)
bool HookStatus=0;			// Hook gesetzt ? 
HHOOK hhHook;					// speicher für den Hook
static HWND hButton=NULL;				// Handle vom Button
#pragma data_seg()
...
</code></pre>
<p>so und hier will ich davon eine Variable in der loader.exe verwenden:</p>
<pre><code class="language-cpp">threadID=GetWindowThreadProcessId(hButton,&amp;processID);
</code></pre>
<p>und dann kommt der Compiler ins Spiel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>'hButton' : nichtdeklarierter Bezeichner</p>
<p>so schön... wie stell ich es an das ich eine Variable hab die sowohl der dll.cpp als auch der loader.cpp bekannt ist und die sich, als Beispiel, im Wert in beiden Datein ändert wenn ich es in nur einer ändere... - versteht ihr was ich meine ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Danke für eure Hilfe. Bin schon ganz verzweifelt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/92100/dll-lt-gt-loader-shared-memory-funktioniert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 12:29:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/92100.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Nov 2004 13:40:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DLL &amp;lt;-&amp;gt; Loader Shared Memory funktioniert nicht. on Mon, 15 Nov 2004 13:40:29 GMT]]></title><description><![CDATA[<p>Hallo, ich bin zwar neu hier aber ich muss trotzdem mal was fragen.</p>
<p>Ich hab mir eine dll geschrieben und möchte Werte aus der Werte in mein Hauptprogramm übergeben (loader)</p>
<p>leider funktioniert das mit dem &quot;sharedmemory&quot; und den #pragmas nicht so ganz<br />
- Anmerkung ich nutze MSVC++ 6.0</p>
<p>hier ist ein Sourceschnipsel der dll:</p>
<pre><code class="language-cpp">// Variablen der dll.cpp
#pragma data_seg(&quot;.SegmentXyZ&quot;)
bool HookStatus=0;			// Hook gesetzt ? 
HHOOK hhHook;					// speicher für den Hook
static HWND hButton=NULL;				// Handle vom Button
#pragma data_seg()
...
</code></pre>
<p>so und hier will ich davon eine Variable in der loader.exe verwenden:</p>
<pre><code class="language-cpp">threadID=GetWindowThreadProcessId(hButton,&amp;processID);
</code></pre>
<p>und dann kommt der Compiler ins Spiel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>'hButton' : nichtdeklarierter Bezeichner</p>
<p>so schön... wie stell ich es an das ich eine Variable hab die sowohl der dll.cpp als auch der loader.cpp bekannt ist und die sich, als Beispiel, im Wert in beiden Datein ändert wenn ich es in nur einer ändere... - versteht ihr was ich meine ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Danke für eure Hilfe. Bin schon ganz verzweifelt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/652279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/652279</guid><dc:creator><![CDATA[DieRuhevordemSturm]]></dc:creator><pubDate>Mon, 15 Nov 2004 13:40:29 GMT</pubDate></item><item><title><![CDATA[Reply to DLL &amp;lt;-&amp;gt; Loader Shared Memory funktioniert nicht. on Mon, 15 Nov 2004 16:44:23 GMT]]></title><description><![CDATA[<p>Versuch es mal so:</p>
<pre><code class="language-cpp">pragma data_seg (&quot;shared&quot;)
bool HookStatus     = 0;            // Hook gesetzt ?
HHOOK hhHook        = NULL;         // speicher für den Hook
static HWND hButton = NULL;         // Handle vom Button
#pragma data_seg()
#pragma comment(linker,&quot;/SECTION:shared,RWS&quot;)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/652463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/652463</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 15 Nov 2004 16:44:23 GMT</pubDate></item><item><title><![CDATA[Reply to DLL &amp;lt;-&amp;gt; Loader Shared Memory funktioniert nicht. on Mon, 15 Nov 2004 17:25:03 GMT]]></title><description><![CDATA[<p>Die Variable in dll.cpp exportieren und in loader.dll importtieren. Oder besser gleich eine Funktion exportieren/importieren, die die Variable zurückgibt, wie bei Klassen :).</p>
<p>BTW: Wie es flenders schon richtig gemacht hat, MUSS shared-Data initialisiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/652499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/652499</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Mon, 15 Nov 2004 17:25:03 GMT</pubDate></item><item><title><![CDATA[Reply to DLL &amp;lt;-&amp;gt; Loader Shared Memory funktioniert nicht. on Tue, 16 Nov 2004 09:11:53 GMT]]></title><description><![CDATA[<p>Puh, das hab ich noch nie gesehen.</p>
<p>Es ist ja schön, wenn man mit dem Linker böse Dinge machen kann, aber bringt das denn auch irgendwas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/652964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/652964</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Tue, 16 Nov 2004 09:11:53 GMT</pubDate></item><item><title><![CDATA[Reply to DLL &amp;lt;-&amp;gt; Loader Shared Memory funktioniert nicht. on Tue, 16 Nov 2004 16:15:09 GMT]]></title><description><![CDATA[<p>Ringding schrieb:</p>
<blockquote>
<p>Es ist ja schön, wenn man mit dem Linker böse Dinge machen kann, aber bringt das denn auch irgendwas?</p>
</blockquote>
<p>Damit solltest du dann sowohl im Hauptprogramm als auch in der DLL auf die entsprechenden Variablen zugreifen können <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/653393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653393</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 16 Nov 2004 16:15:09 GMT</pubDate></item><item><title><![CDATA[Reply to DLL &amp;lt;-&amp;gt; Loader Shared Memory funktioniert nicht. on Tue, 16 Nov 2004 16:29:19 GMT]]></title><description><![CDATA[<p>Naja, da könnte man ja genausogut eine struct anlegen und eine Funktion machen, die einen Pointer darauf liefert. Da können dann auch beide drauf zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/653416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653416</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Tue, 16 Nov 2004 16:29:19 GMT</pubDate></item><item><title><![CDATA[Reply to DLL &amp;lt;-&amp;gt; Loader Shared Memory funktioniert nicht. on Tue, 16 Nov 2004 16:32:44 GMT]]></title><description><![CDATA[<p>Könnte man natürlich auch, ist aber eben nicht so komfortabel (und evtl. nicht so effizient?!) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/653420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653420</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 16 Nov 2004 16:32:44 GMT</pubDate></item><item><title><![CDATA[Reply to DLL &amp;lt;-&amp;gt; Loader Shared Memory funktioniert nicht. on Tue, 16 Nov 2004 19:42:33 GMT]]></title><description><![CDATA[<p>flenders schrieb:</p>
<blockquote>
<p>Ringding schrieb:</p>
<blockquote>
<p>Es ist ja schön, wenn man mit dem Linker böse Dinge machen kann, aber bringt das denn auch irgendwas?</p>
</blockquote>
<p>Damit solltest du dann sowohl im Hauptprogramm als auch in der DLL auf die entsprechenden Variablen zugreifen können <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Nö, es macht was anderes.<br />
Es setzt die Datensegment/section Eigenschaften auf Read|Write|Shared.<br />
Auf die Daten einer DLL kannst du immer aus deinem &quot;Hauptprogramm&quot; zugreifen, sofern du die Adressen kennst und durch dieses Linker-Konstrukt kennst du die auch nicht.<br />
Entscheident ist hier das Shared-Flag, mit dem dieses Datensegment unter allen Instanzen der DLL geteilt wird. Somit greifen die DLLs auf die gleichen Variablen zu. Wenn also DLLInstanz0 hButton ändert, so ändert sich auch hButton in der DLLInstanz1, usw...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/653594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653594</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Tue, 16 Nov 2004 19:42:33 GMT</pubDate></item><item><title><![CDATA[Reply to DLL &amp;lt;-&amp;gt; Loader Shared Memory funktioniert nicht. on Tue, 16 Nov 2004 20:05:10 GMT]]></title><description><![CDATA[<p>Sorry, dann hatte ich da wohl was durcheinander gebracht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> - Aber zum Glück gibt es hier ja einige User die wirklich Ahnung haben, so dass man nicht ganz so sehr aufpassen muss, was man schreibt (weil ja meistens noch irgendjemand Korrektur liest) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/653612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653612</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 16 Nov 2004 20:05:10 GMT</pubDate></item><item><title><![CDATA[Reply to DLL &amp;lt;-&amp;gt; Loader Shared Memory funktioniert nicht. on Tue, 16 Nov 2004 20:08:39 GMT]]></title><description><![CDATA[<p>Ich glaube dazu sollte man aber besser File Mapping benutzen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/653614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653614</guid><dc:creator><![CDATA[shared section]]></dc:creator><pubDate>Tue, 16 Nov 2004 20:08:39 GMT</pubDate></item></channel></rss>