<?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 Threadsicher]]></title><description><![CDATA[<p>Hello.</p>
<p>Ich möchte in mein Programm eine DLL einbinden.<br />
Klappt auch super! Ich habe jetzt gelesen das man das Threadsicher gestalten soll und erfahren das man dies über <strong>__thread</strong> schafft.</p>
<p>Quelle: <a href="http://bcb-tutorial.c-plusplus.net/DLL_Tutorial/artikel10.html" rel="nofollow">http://bcb-tutorial.c-plusplus.net/DLL_Tutorial/artikel10.html</a><br />
Beispiel: char* __thread ps; //Globale threadsichere Variable.</p>
<p>Ich rufe in meiner programm.exe also die Funtkion in der DLL auf:</p>
<p>unit1.cpp</p>
<pre><code class="language-cpp">unsigned char *var1,*var2,*var3,*var4,*var5;
mainfunc(var1,*var2,var3,var4,var5);
</code></pre>
<p>dll.cpp</p>
<pre><code class="language-cpp">void mainfunc(unsigned char __thread *var1, unsigned char __thread *var2,
unsigned char __thread *var3, unsigned char __thread *var4, unsigned char __thread *var5)
{
   // tu was
   unterfunktion1(var1,*var2,var3,var4,var5);
   // tu was
}
</code></pre>
<p>So meine Frage ist nun.. ich rufe zwar nur die mainfunc auf aber diese wiederrum ruft eine Funktion auf die eine Funktion aufruft die eine Funtkion aufruft.<br />
Insgesamt werden bestimmt so 30 Funktionen durchlaufen immer wieder mit der gleichen Variablen die diese auch verändern.</p>
<p>Muss ich das <strong>__thread</strong> jetzt in alle Funktionen einbauen oder nur in der mainfunc? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/91400/dll-threadsicher</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 17:59:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/91400.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Nov 2004 12:18:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DLL Threadsicher on Mon, 08 Nov 2004 12:18:50 GMT]]></title><description><![CDATA[<p>Hello.</p>
<p>Ich möchte in mein Programm eine DLL einbinden.<br />
Klappt auch super! Ich habe jetzt gelesen das man das Threadsicher gestalten soll und erfahren das man dies über <strong>__thread</strong> schafft.</p>
<p>Quelle: <a href="http://bcb-tutorial.c-plusplus.net/DLL_Tutorial/artikel10.html" rel="nofollow">http://bcb-tutorial.c-plusplus.net/DLL_Tutorial/artikel10.html</a><br />
Beispiel: char* __thread ps; //Globale threadsichere Variable.</p>
<p>Ich rufe in meiner programm.exe also die Funtkion in der DLL auf:</p>
<p>unit1.cpp</p>
<pre><code class="language-cpp">unsigned char *var1,*var2,*var3,*var4,*var5;
mainfunc(var1,*var2,var3,var4,var5);
</code></pre>
<p>dll.cpp</p>
<pre><code class="language-cpp">void mainfunc(unsigned char __thread *var1, unsigned char __thread *var2,
unsigned char __thread *var3, unsigned char __thread *var4, unsigned char __thread *var5)
{
   // tu was
   unterfunktion1(var1,*var2,var3,var4,var5);
   // tu was
}
</code></pre>
<p>So meine Frage ist nun.. ich rufe zwar nur die mainfunc auf aber diese wiederrum ruft eine Funktion auf die eine Funktion aufruft die eine Funtkion aufruft.<br />
Insgesamt werden bestimmt so 30 Funktionen durchlaufen immer wieder mit der gleichen Variablen die diese auch verändern.</p>
<p>Muss ich das <strong>__thread</strong> jetzt in alle Funktionen einbauen oder nur in der mainfunc? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/647287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/647287</guid><dc:creator><![CDATA[menno]]></dc:creator><pubDate>Mon, 08 Nov 2004 12:18:50 GMT</pubDate></item><item><title><![CDATA[Reply to DLL Threadsicher on Mon, 08 Nov 2004 21:11:24 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich glaube du hast ein Design-Fehler.<br />
Nicht die Durchführung der Routinen in der DLL ist das Problem. Sondern die Ressourcen, die an den Routinen übergeben werden. Da du anscheinend keine globalen Variablen benutzt, sind die Routinen selbst unkritisch.</p>
<p>Was du machen solltest, ist sicherzustellen, das der Aufruf der Routinen threadsicher ist.<br />
Bei Threads muss du nur beachten, dass keine Ressourcen in einem Thread benutzt werden, die in einem anderen Thread auch benutzt werden. Das kann die Dll gar nicht sicherstellen. Wenn es Konflikte bei der Benutzung von Ressourcen gibt, löse sie möglichst dort auf, wo die Ressourcen ihren Ursprung haben.<br />
Dein Problem liegt also in der unit1.cpp und nicht in der dll.cpp.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/647773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/647773</guid><dc:creator><![CDATA[AndreasW]]></dc:creator><pubDate>Mon, 08 Nov 2004 21:11:24 GMT</pubDate></item><item><title><![CDATA[Reply to DLL Threadsicher on Wed, 10 Nov 2004 11:57:31 GMT]]></title><description><![CDATA[<p>Danke für deine Antwort.</p>
<p>Ich habe eine Form wo ich global *<em>unsigned char *var1,*var2,*var3,*var4,<em>var5;</em></em> definiere.</p>
<p>In den mehreren Unterformen soll mit den Globalen gearbeitet werden.<br />
Eine Änderung wird auch durch die DLL realisiert.</p>
<p>Also muss ich bei der globalen definition:<br />
unsigned char __thread *var1, __thread *var2, __thread *var3, __thread *var4, __thread *var5;<br />
schreiben und das wars? Sorry, arbeite zum ersten male mit DLL's <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="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/648709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/648709</guid><dc:creator><![CDATA[menno]]></dc:creator><pubDate>Wed, 10 Nov 2004 11:57:31 GMT</pubDate></item><item><title><![CDATA[Reply to DLL Threadsicher on Wed, 10 Nov 2004 12:08:41 GMT]]></title><description><![CDATA[<p>__thread bewirkt, dass jeder Thread eine eigene Kopie dieser Variable erhält und damit machen kann, was er will. Wertänderungen wirken sich nicht auf andere Threads aus. Ob das von dir gewünscht ist, können wir nicht wissen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/648719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/648719</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Wed, 10 Nov 2004 12:08:41 GMT</pubDate></item></channel></rss>