<?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[threads und externe variablen]]></title><description><![CDATA[<p>Guten tag,<br />
Ich habe im moment ein kleines problem und wüsste gerne wie ich<br />
das fixxen kann. Nunja, in einer CPP datei habe ich einen<br />
Thread und an einer gewissen stelle ist eine Whileschleife.<br />
Diese whileschleife überprüft ob ein DWORD 0 ist.<br />
Diese DWORD variable, wird in dieser CPP datei definiert,<br />
und in einer anderen mit extern deklariert. So das problem ist jetzt,<br />
das diese variable in der CPP datei verändert wird in der sie<br />
als extern definiert ist, und der Thread bleibt in der Whileschleife<br />
hängen. Kann man externe variablen nicht verändern ?<br />
Wenn nicht, bzw wenn der Thread es nicht mitbekommt, wäre ich sehr offen<br />
für Vorschläge wie ich dieses problem lösen könnte.<br />
Vielen dank im vorraus für eure Hilfe</p>
<p>Gruß<br />
beginner31231</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/257408/threads-und-externe-variablen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 07:40:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/257408.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Dec 2009 06:25:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to threads und externe variablen on Mon, 28 Dec 2009 06:25:59 GMT]]></title><description><![CDATA[<p>Guten tag,<br />
Ich habe im moment ein kleines problem und wüsste gerne wie ich<br />
das fixxen kann. Nunja, in einer CPP datei habe ich einen<br />
Thread und an einer gewissen stelle ist eine Whileschleife.<br />
Diese whileschleife überprüft ob ein DWORD 0 ist.<br />
Diese DWORD variable, wird in dieser CPP datei definiert,<br />
und in einer anderen mit extern deklariert. So das problem ist jetzt,<br />
das diese variable in der CPP datei verändert wird in der sie<br />
als extern definiert ist, und der Thread bleibt in der Whileschleife<br />
hängen. Kann man externe variablen nicht verändern ?<br />
Wenn nicht, bzw wenn der Thread es nicht mitbekommt, wäre ich sehr offen<br />
für Vorschläge wie ich dieses problem lösen könnte.<br />
Vielen dank im vorraus für eure Hilfe</p>
<p>Gruß<br />
beginner31231</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828753</guid><dc:creator><![CDATA[beginner31231]]></dc:creator><pubDate>Mon, 28 Dec 2009 06:25:59 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Mon, 28 Dec 2009 07:04:04 GMT]]></title><description><![CDATA[<p>Du kannst die Variable schon verändern, aber dein Thread bekommt davon u.U. nichts mit, da der Compiler z.B. beim Optimieren veranlasst haben kann, dass der Inhalt der Variable in ein Register geladen wird. Dass die Variable woanders verändert wird, ahnt er nicht. Das kannst du ihm aber mitteilen, indem du sie als volatile deklarierst. Dann darf der Compiler den Inhalt der Variablen nicht zwischenspeichern oder sonstige Annahmen über deren Inhalt machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828755</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Mon, 28 Dec 2009 07:04:04 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Mon, 28 Dec 2009 07:27:15 GMT]]></title><description><![CDATA[<p>was soll das hier überhaupt bringen die Variable als extern zu deklarieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828757</guid><dc:creator><![CDATA[?????????????????????????]]></dc:creator><pubDate>Mon, 28 Dec 2009 07:27:15 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Mon, 28 Dec 2009 09:00:30 GMT]]></title><description><![CDATA[<p>beginner31231 schrieb:</p>
<blockquote>
<p>Nunja, in einer CPP datei habe ich einen<br />
Thread und an einer gewissen stelle ist eine Whileschleife.<br />
Diese whileschleife überprüft ob ein DWORD 0 ist.<br />
Diese DWORD variable, wird in dieser CPP datei definiert,</p>
</blockquote>
<p>Wie sieht diese Definition aus?</p>
<p>beginner31231 schrieb:</p>
<blockquote>
<p>und in einer anderen mit extern deklariert. So das problem ist jetzt,<br />
das diese variable in der CPP datei verändert wird in der sie<br />
als extern <strong>definiert</strong> ist,</p>
</blockquote>
<p>definiert oder deklariert?</p>
<p>beginner31231 schrieb:</p>
<blockquote>
<p>und der Thread bleibt in der Whileschleife<br />
hängen. Kann man externe variablen nicht verändern ?</p>
</blockquote>
<p>Klar, kann man das -- sofern sie nicht const ist.</p>
<p>Ich kann mir mehrere Gründe vorstellen.<br />
1. Speicherzugriff wurde wegoptimiert<br />
2. Du hast in Wirklichkeit 2 versch. Variablen</p>
<p>Zu 1 musst Du wissen, dass der Aufbau einer CPU recht kompliziert ist und Teile des Hauptspeichers in CPU-eigenen Zwischenspeicher (&quot;Cache&quot;) vorrätig gehalten wird. Wenn also CPU A in den Speicher schreibt und CPU B die Stelle lesen will, aber noch auf den Cache zugreift, &quot;sieht&quot; CPU B diesen Schreibvorgang nicht. Selbst auf Compiler-ebene könnte der Speicherzugriff wegoptimiert worden sein.</p>
<p>Wie es richtig geht: Zugriff auf gemeinsamen Speicher synchronisieren. Unsynchronisierter Zugriff nennt sich auch &quot;Datenrennen&quot;. Zur Synchronisierung verwendest Du zB einen &quot;<a href="http://de.wikipedia.org/wiki/Kritischer_Abschnitt" rel="nofollow">kritischen Abschnitt</a>&quot;. Das sollte Teil der Threading-Bibliothek sein, die Du verwendest. Nebenläufige Threads starten ist nicht das einzige, was diese Bibliotheken leisten. Sie bieten auch Mittel zur Synchronisierung und Koordination an.</p>
<p>Tipp: Versuche die gemeinsame Nutzung derselben Variablen zwischen versch Threads zu vermeiden. Das gibt leider sehr schnell Chaos und man kann Programmierfehler sehr schlecht nachvollziehen.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828765</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Mon, 28 Dec 2009 09:00:30 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Mon, 28 Dec 2009 10:36:42 GMT]]></title><description><![CDATA[<p>????????????????????????? schrieb:</p>
<blockquote>
<p>was soll das hier überhaupt bringen die Variable als extern zu deklarieren?</p>
</blockquote>
<p>Bist Du Dir dessen Effekt nicht bewusst oder ist das eine Design-Frage, warum man so etwas jemals machen sollte?</p>
<p>extern erzwingt externe Bindung und kann aus einer Definition eine Deklaration machen:</p>
<pre><code>extern int i;            // de[b]klar[/b]iert i (externe Bindung)
int i;                   // de[b]fin[/b]iert  i (externe Bindung)

const int j = 23;        // de[b]fin[/b]iert  j (interne Bindung, da const) (*)

extern const int k;      // de[b]klar[/b]iert k (externe Bindung)
extern const int k = 42; // de[b]fin[/b]iert  k (externe Bindung)
</code></pre>
<p>(*) gilt meines Wissens nach nur für C++, nicht für C. In C müsste man hier noch das Schlüsselwort <code>static</code> einsetzen, um interne Bindung zu erzwingen.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828792</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Mon, 28 Dec 2009 10:36:42 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 06:31:12 GMT]]></title><description><![CDATA[<p>Danke für die ganzen Antworten.<br />
Habe mich ein wenig eingelesen und benutze eine critical section.<br />
Habe auch volatile probiert aber beides kam zu keiner lösung.<br />
Momentan hab ichs jetzt anders, ich habe eine Funktion<br />
die einen vector prüft ob ein object mit einem<br />
bestimmt wert vorhanden ist oder nicht, und gibt dann halt<br />
true oder false zurück. Das heisst ich hab jetzt eine whileschleife<br />
im Thread die bedingung ist das ein bool true ist.<br />
Soo in der Whileschleife wird jetzt mit einer function<br />
gecheckt ob in einem vector etwas vorhanden ist,<br />
und wenn ja gibt diese funktion true zurück, wenn nicht dann false.<br />
Diese funktion setzt auch die bool variable die die Bedingung ist.<br />
Nun ist es leider so, das der vector innerhalb des Threads anscheinend<br />
nicht geupdatet wird. Der Vector selber bekommt nebenbei neue werte,<br />
löscht werte etc in dem mainprogramm. Damit es da keine Fehler gibt,<br />
benutze ich wie vorher schon gesagt eine critical section und<br />
EnterCriticalSection bzw LeaveCriticalSection. Kann es da trotzdem<br />
noch probleme geben ? wenn ja welche ?<br />
Weil naja, es klappt eigentlich das nebenbei sachen eingefügt bzw gelöscht<br />
werden nur innerhalb des threads scheint die funktion das nicht mizukriegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829666</guid><dc:creator><![CDATA[beginner31231]]></dc:creator><pubDate>Wed, 30 Dec 2009 06:31:12 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 06:59:10 GMT]]></title><description><![CDATA[<p>Du hast irgendwo einen Fehler gemacht, aber wo, können wir auch nicht sagen ohne den Code zu sehen. Wenn Zugriffe auf gemeinsam genutzte Objekte mit critical sections synchronisiert werden, dann reicht das.<br />
Du musst dich halt mit volatile dagegen absichern, dass der Compiler gut gemeinte Optimierungen anbringt.<br />
Betrachte folgendes Beispiel:</p>
<pre><code class="language-cpp">static bool quit;
void thread()
{
  quit=false;
  while (!quit)
  {
    //mach was
  }
}
</code></pre>
<p>Der Compiler kann sich jetzt while (true) denken, da sich der Wert von quit unter normalen Bedingungen nicht ändern kann. Wenn aber &quot;abnormale&quot; Bedingungen vorliegen, sprich, dass quit in einem anderen Thread verändert wird, musst du dich gegen solche Optimierungen mit volatile static bool quit absichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829672</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Wed, 30 Dec 2009 06:59:10 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 07:44:04 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>????????????????????????? schrieb:</p>
<blockquote>
<p>was soll das hier überhaupt bringen die Variable als extern zu deklarieren?</p>
</blockquote>
<p>oder ist das eine Design-Frage, warum man so etwas jemals machen sollte?</p>
</blockquote>
<p>Ja, hab extern noch nie gebraucht. Gibts da auch sinnvolle Beispiele, für Threads brauch ich es nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829680</guid><dc:creator><![CDATA[?????????????????????????]]></dc:creator><pubDate>Wed, 30 Dec 2009 07:44:04 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 09:11:49 GMT]]></title><description><![CDATA[<p>beginner31231 schrieb:</p>
<blockquote>
<p>Habe mich ein wenig eingelesen und benutze eine critical section.<br />
Habe auch volatile probiert aber beides kam zu keiner lösung.</p>
</blockquote>
<p><a href="http://www.ddj.com/article/printableArticle.jhtml?articleID=212701484&amp;dept_url=/hpc-high-performance-computing/" rel="nofollow">volatile</a> ist Blödsinn hier. Ein(e) Mutex/CriticalSection ist vernünftig und funktioniert auch bei richtiger Anwendung.</p>
<p>beginner31231 schrieb:</p>
<blockquote>
<p>Kann es da trotzdem noch probleme geben ? wenn ja welche ? Weil naja, es klappt eigentlich das nebenbei sachen eingefügt bzw gelöscht werden nur innerhalb des threads scheint die funktion das nicht mizukriegen.</p>
</blockquote>
<p>Dann hast Du wohl etwas falsch gemacht.</p>
<p>Ich denke, Du solltest Dich &quot;noch mehr einlesen&quot; in die Materie.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829694</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Wed, 30 Dec 2009 09:11:49 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 10:23:18 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p><a href="http://www.ddj.com/article/printableArticle.jhtml?articleID=212701484&amp;dept_url=/hpc-high-performance-computing/" rel="nofollow">volatile</a> ist Blödsinn hier.</p>
</blockquote>
<p>Wie kommst du darauf?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829712</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Wed, 30 Dec 2009 10:23:18 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 10:56:07 GMT]]></title><description><![CDATA[<p>Athar schrieb:</p>
<blockquote>
<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p><a href="http://www.ddj.com/article/printableArticle.jhtml?articleID=212701484&amp;dept_url=/hpc-high-performance-computing/" rel="nofollow">volatile</a> ist Blödsinn hier.</p>
</blockquote>
<p>Wie kommst du darauf?</p>
</blockquote>
<p>siehe Link!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829724</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Wed, 30 Dec 2009 10:56:07 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 12:08:41 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>siehe Link!</p>
</blockquote>
<p>... und was willst du damit sagen? Da wird der Sinn von volatile beschrieben.<br />
Wenn er auf die Veränderungen irgendwelcher Flags von außen wartet, muss er es hier höchstwahrscheinlich einsetzen. Um darüber eine Aussage treffen zu können, müsste man aber erstmal Code sehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829749</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Wed, 30 Dec 2009 12:08:41 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 13:15:31 GMT]]></title><description><![CDATA[<p>Athar schrieb:</p>
<blockquote>
<p>...irgendwelcher Flags von außen wartet, muss er es hier höchstwahrscheinlich einsetzen.</p>
</blockquote>
<p>Was für &quot;Flags von außen&quot;? Ich gehe nicht davon aus, dass der OP Gerätetreiber programmieren will.</p>
<p>Entweder wird der Zugriff auf ein gemeinsames &quot;Objekt&quot; über einen Mutex synchronisiert (ist am einfachsten und weniger fehleranfällig), oder mit so etwas wie spinlocks + memory barrier -- lezteres erfordert aber atomare lese/schreib/austausch-Operationen, die <code>volatile</code> (aus C und C++) nicht garantiert. Außerdem ist das eine ziemliche low-level Frickelei, welche man nur Experten überlassen sollte. Ich zähle mich übrigens nicht zu dieser Experten-Gruppe.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829785</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Wed, 30 Dec 2009 13:15:31 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 17:58:29 GMT]]></title><description><![CDATA[<p>Naja das was ich mache ist, das vor der ersten benutzung einmal<br />
InitializeCriticalSection aufgerufen wird, und dann vor jedem<br />
zugriff auf den Vector EnterCriticalSection, und danach LeaveCriticalSection<br />
calle. Hab ich da irgendwas verpasst ? :&gt;<br />
Mit volatile werd ichs nochmal probieren ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829979</guid><dc:creator><![CDATA[beginner31231]]></dc:creator><pubDate>Wed, 30 Dec 2009 17:58:29 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 18:14:09 GMT]]></title><description><![CDATA[<p>edit:<br />
Das Problem ist nicht die Bool Variable.</p>
<pre><code>bool funktion(int id)
{
	if(!initalized)
	{
		InitializeCriticalSection(&amp;crit);
		initalized = true;
	}
	vector&lt;example&gt;::iterator it;
	EnterCriticalSection(&amp;crit);
	it = structvector.begin();
	while(it != structvector.end())
	{
		if (it-&gt;id == id)
		{
			LeaveCriticalSection(&amp;crit);
			return true;
		}
		else
			it++;
	}
	LeaveCriticalSection(&amp;crit);
	return false;
}
</code></pre>
<p>So in etwa sieht die checkfunktion aus. Mach ich da irgendwas falsch ?<br />
Da sieht man auch direkt wie ich die Critical Section verwende halt vor jedem<br />
zugriff auf den Vector.<br />
Die Schleife die das testet hat auch einen Sleep und testet nicht durchgehend.<br />
ca so:</p>
<pre><code>while(boolvar)
{
      Sleep(2000);
      boolvar = function(struct-&gt;id);
}
</code></pre>
<p>Wenn daran irgendwas falsch ist, wäre es nett mehr zu sagen<br />
was ich falsch mache und wieso das falsch ist. Vielen dank<br />
das ihr euch solche Mühe gebt <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/1829990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829990</guid><dc:creator><![CDATA[beginner31231]]></dc:creator><pubDate>Wed, 30 Dec 2009 18:14:09 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 19:25:47 GMT]]></title><description><![CDATA[<p>beginner31231 schrieb:</p>
<blockquote>
<p>Mach ich da irgendwas falsch ?</p>
</blockquote>
<p>Ja, denn die Initialisierung von crit erzeugt eine race condition, z.B.</p>
<pre><code class="language-cpp">// Thread 1                                 | Thread 2
    if(!initalized)                         | if(!initalized)
    {                                       | {
        InitializeCriticalSection(&amp;crit);   |
        initalized = true;                  |
    }                                       |
    vector&lt;example&gt;::iterator it;           |
    EnterCriticalSection(&amp;crit);            |
                                            |     InitializeCriticalSection(&amp;crit);
                                            |     initalized = true;
                                            | }
                                            | vector&lt;example&gt;::iterator it;
                                            | EnterCriticalSection(&amp;crit);
// ups
</code></pre>
<p>Statements, die in der gleichen Zeile stehen, stelle man sich als gleichzeitig ausgeführt vor.<br />
Das Synchronisationsobjekt muss natürlich initialisiert worden sein, <em>bevor</em> mehrere Threads versuchen können, dieses zur Synchronisation zu verwenden. Zweckmäßigerweise macht man das also gleich bei der Erzeugung des zu schützenden vector.<br />
Die Benutzung von RAII ist zu empfehlen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830024</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 30 Dec 2009 19:25:47 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 21:12:25 GMT]]></title><description><![CDATA[<p>Danke für die Informationen. Nunja, zu der Sache gleich bei der Erzeugung.<br />
Ich habe den Vector nicht in dem mainprogramm sondern in einer anderen<br />
cpp datei. Das heißt ich müsste den vector schon im main Programm erzeugen<br />
und dann in der anderen cpp als extern angeben ?<br />
Sprich ich müsste das im main Programm ca so machen --&gt;</p>
<pre><code>CRITICAL_SECTION crit;
InitializeCriticalSection(&amp;crit);
vector&lt;example&gt;vectorname;
</code></pre>
<p>und in der anderen cpp dann halt</p>
<pre><code>extern vector&lt;example&gt;vectorname;
</code></pre>
<p>und wie vorher dann enter bzw leave benutzen nur<br />
das initialize natürlich rausnehmen dann ?<br />
Bei der erzeugung müsste ich jetzt nicht EnterCriticalSection benutzen ?!<br />
Vielen dank nochmal für die Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830082</guid><dc:creator><![CDATA[beginner31231]]></dc:creator><pubDate>Wed, 30 Dec 2009 21:12:25 GMT</pubDate></item><item><title><![CDATA[Reply to threads und externe variablen on Wed, 30 Dec 2009 21:24:38 GMT]]></title><description><![CDATA[<p>beginner31231 schrieb:</p>
<blockquote>
<p>Danke für die Informationen. Nunja, zu der Sache gleich bei der Erzeugung.<br />
Ich habe den Vector nicht in dem mainprogramm sondern in einer anderen<br />
cpp datei. Das heißt ich müsste den vector schon im main Programm erzeugen<br />
und dann in der anderen cpp als extern angeben ?<br />
Sprich ich müsste das im main Programm ca so machen --&gt;</p>
<pre><code>CRITICAL_SECTION crit;
InitializeCriticalSection(&amp;crit);
vector&lt;example&gt;vectorname;
</code></pre>
<p>und in der anderen cpp dann halt</p>
<pre><code>extern vector&lt;example&gt;vectorname;
</code></pre>
<p>und wie vorher dann enter bzw leave benutzen nur<br />
das initialize natürlich rausnehmen dann ?<br />
Bei der erzeugung müsste ich jetzt nicht EnterCriticalSection benutzen ?!<br />
Vielen dank nochmal für die Hilfe.</p>
</blockquote>
<p>Das ist korrekt, mein Herr!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830087</guid><dc:creator><![CDATA[LangerDödel]]></dc:creator><pubDate>Wed, 30 Dec 2009 21:24:38 GMT</pubDate></item></channel></rss>