<?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[Threadfunktion]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie genau deklariere ich eine Threadfunktion?</p>
<p>Ich habe bis jetzt immer nur folgenden Funktionsaufruf:</p>
<pre><code>unsigned long __stdcall MoveFiles(LPVOID Data)
</code></pre>
<p>Diesen setze ich meist vor der Thread aufrufenden Funktion, damit ich die Deklaration umgehe.</p>
<p>Denn wenn ich ihn einfach so deklariere, klappt dies nicht:</p>
<pre><code>unsigned long __stdcall MoveFiles(LPVOID Data);
</code></pre>
<p>Könnte man auch andere Rückgabetypen bestimmen, wie z.B. void?<br />
Ist es möglich auch andere oder mehr Übergabe Parameter anzugeben??<br />
Oder wie könnte man z.B. mehrere AnsiStrings dieser Funktion übergeben?</p>
<p>MfG TheCaleb</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/177076/threadfunktion</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 05:11:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177076.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Mar 2007 06:10:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Threadfunktion on Fri, 30 Mar 2007 06:58:58 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie genau deklariere ich eine Threadfunktion?</p>
<p>Ich habe bis jetzt immer nur folgenden Funktionsaufruf:</p>
<pre><code>unsigned long __stdcall MoveFiles(LPVOID Data)
</code></pre>
<p>Diesen setze ich meist vor der Thread aufrufenden Funktion, damit ich die Deklaration umgehe.</p>
<p>Denn wenn ich ihn einfach so deklariere, klappt dies nicht:</p>
<pre><code>unsigned long __stdcall MoveFiles(LPVOID Data);
</code></pre>
<p>Könnte man auch andere Rückgabetypen bestimmen, wie z.B. void?<br />
Ist es möglich auch andere oder mehr Übergabe Parameter anzugeben??<br />
Oder wie könnte man z.B. mehrere AnsiStrings dieser Funktion übergeben?</p>
<p>MfG TheCaleb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254262</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Fri, 30 Mar 2007 06:58:58 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 06:17:29 GMT]]></title><description><![CDATA[<p>Wenn Du den Thread mit &quot;_beginthreadex&quot; erzeugst (was auch empfohlen wird, dann ist das ok...<br />
Mit CreateThread, dann</p>
<pre><code class="language-cpp">DWORD WINAPI MyThreadProc(LPVOID pData);
</code></pre>
<p>Übergeben kannst Du beliebig viele Daten. Du musst diese Daten nur in einen eigene Struktur legen und dann übergibst Du einen Zeiger auf diese Struktur. Dieser Zeiger wird dann in &quot;pData&quot; dem Thread mitgeteilt. Hier musst Du dann noch auf die Structur zurück-casten und schon hast Du Deine Daten wieder.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254265</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Wed, 28 Mar 2007 06:17:29 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 07:09:30 GMT]]></title><description><![CDATA[<p>Hmmmm also ich habe nun mein Funktionsaufruf so geschrieben:</p>
<pre><code>LPTHREAD_START_ROUTINE Warten2 = &amp;Warten;
Warteschleife=CreateThread(NULL, 0, Warten2, NULL, 0, &amp;ThreadID);
</code></pre>
<p>und den Funktionskopf so:</p>
<pre><code>DWORD WINAPI Warten(void *)
</code></pre>
<p>Doch, was mache ich nun falsch??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254298</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 07:09:30 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 07:37:46 GMT]]></title><description><![CDATA[<p>TheCaleb schrieb:</p>
<blockquote>
<p>Hmmmm also ich habe nun mein Funktionsaufruf so geschrieben:</p>
<pre><code>LPTHREAD_START_ROUTINE Warten2 = &amp;Warten;
Warteschleife=CreateThread(NULL, 0, Warten2, NULL, 0, &amp;ThreadID);
</code></pre>
<p>und den Funktionskopf so:</p>
<pre><code>DWORD WINAPI Warten(void *)
</code></pre>
<p>Doch, was mache ich nun falsch??</p>
</blockquote>
<p>Warum so umständlich?</p>
<pre><code class="language-cpp">Warteschleife=CreateThread(NULL, 0, Warten, NULL, 0, &amp;ThreadID);
</code></pre>
<p>BTW: Wenn Du die CRT verwendest sollte man _beginthreadex verwenden!<br />
Das hat doch Jochen auch schon geraten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254315</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 28 Mar 2007 07:37:46 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 08:04:30 GMT]]></title><description><![CDATA[<p>Moment mal!</p>
<p>Also wenn ich die Funktion mit</p>
<pre><code>Warteschleife=_beginthreadex(NULL, 0, Warten, NULL, 0, &amp;ThreadID);
</code></pre>
<p>aufrufe, wie sollte dann der Funktionskopf aussehen?</p>
<p>Ich komme hier gerade nicht mehr klar! <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>
<p>Axo eine Nebenfrage, wie genau macht man das nochmal mit dem Casten?<br />
Also beim Funktionsaufruf gibt man einfach die erzeugte Struktur mit &amp; voher an, um die Adresse zu bekommen, doch wie castet man die in dem Thread wieder zurück um die Werte zu bekommen??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254336</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:04:30 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 08:21:04 GMT]]></title><description><![CDATA[<p>TheCaleb schrieb:</p>
<blockquote>
<p>Doch, was mache ich nun falsch??</p>
</blockquote>
<p>Frag deinen Compiler, der wird's dir schon sagen (und ich kenne keinen Compiler, der bei Problemen keine genaue Fehlermeldung liefert :)).</p>
<p>PS: _beginthreadex erwartet eine:</p>
<pre><code class="language-cpp">unsigned __stdcall ThreadFunc(void* param);
</code></pre>
<p>Und das mit dem Casten funktioniert so:</p>
<pre><code class="language-cpp">unsigned __stdcall ThreadFunc(void* param)
{
  ThData* pdata = static_cast&lt;ThData*&gt;(param);
  ...
}

...
ThData data;
unsigned thread_id;
unsigned long status = _beginthreadex(NULL,0,ThreadFunc,&amp;data,0,&amp;thread_id);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1254360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254360</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:21:04 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 08:34:48 GMT]]></title><description><![CDATA[<p>Vielen Dank, doch wie kann ich den mit _beginthreadex erzeugten Thread wieder killen?<br />
Bei CreateThread wurde ja ein Handle zurück gegeben mit dem das ging, oder irre ich mich da??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254378</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:34:48 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 08:55:01 GMT]]></title><description><![CDATA[<p>Und wenn ich die Funktion mit</p>
<pre><code>unsigned __stdcall Warten(void*);
</code></pre>
<p>deklariere und die alles andere nach CStolls Beispiel mache, meldet mir der Compiler:</p>
<p>[C++ Error] Unit1.cpp(82): E2034 Cannot convert 'unsigned int (__stdcall * (_closure )(void *))(void *)' to 'unsigned int (__stdcall *)(void *)'</p>
<p>[C++ Error] Unit1.cpp(82): E2342 Type mismatch in parameter '__start' (wanted 'unsigned int (__stdcall *)(void *)', got 'void')</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254401</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:55:01 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 09:34:29 GMT]]></title><description><![CDATA[<p>TheCaleb schrieb:</p>
<blockquote>
<p>Und wenn ich die Funktion mit</p>
<pre><code>unsigned __stdcall Warten(void*);
</code></pre>
<p>deklariere und die alles andere nach CStolls Beispiel mache, meldet mir der Compiler:</p>
<p>[C++ Error] Unit1.cpp(82): E2034 Cannot convert 'unsigned int (__stdcall * (_closure )(void *))(void *)' to 'unsigned int (__stdcall *)(void *)'</p>
<p>[C++ Error] Unit1.cpp(82): E2342 Type mismatch in parameter '__start' (wanted 'unsigned int (__stdcall *)(void *)', got 'void')</p>
</blockquote>
<p>Zeige uns doch einfach Code. Das ist so einfach nur fischen im Trüben. Ichhabe das Gefühl Du hast wieder einen Adressoperator zuviel!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254426</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 28 Mar 2007 09:34:29 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 09:35:26 GMT]]></title><description><![CDATA[<p>TheCaleb schrieb:</p>
<blockquote>
<p>Vielen Dank, doch wie kann ich den mit _beginthreadex erzeugten Thread wieder killen?<br />
Bei CreateThread wurde ja ein Handle zurück gegeben mit dem das ging, oder irre ich mich da??</p>
</blockquote>
<p>Man killt keinen Thread! Ein Thread beendet sich, indem er einfach returniert!<br />
Und das erreicht man einfach in dem man ein Flag/Event setzt un der Thread dieses Flag/Event erkennt und einfach returniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254428</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 28 Mar 2007 09:35:26 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 09:36:39 GMT]]></title><description><![CDATA[<p>TheCaleb schrieb:</p>
<blockquote>
<p>Vielen Dank, doch wie kann ich den mit _beginthreadex erzeugten Thread wieder killen?<br />
Bei CreateThread wurde ja ein Handle zurück gegeben mit dem das ging, oder irre ich mich da??</p>
</blockquote>
<p>Ganz einfach: der letzte Parameter von beginthreadex ist ein Zeiger auf eine unsigned-Variable - dort packt die Funktion deine Thread-ID rein.<br />
(aber es ist sowieso keine gute Idee, einen Thread von außen zu killen. Schick ihm lieber eine Nachricht, daß er sich beenden soll (du könntest z.B. einen Member der ThData-Struktur als Ende-Flag setzen))</p>
<p>Zu der Fehlermeldung: Dann hast du es offenbar nicht so gemacht wie oben - zeig doch mal den genauen Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254429</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Mar 2007 09:36:39 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 09:47:58 GMT]]></title><description><![CDATA[<p>Wie soll ich das denn mit den Flags genau machen?<br />
Also ich habe in der Warten Funktion eine WaitFor, welche unendlich lange wartet, wenn keine Aktion geschieht.<br />
Diesen Thread würde ich gerne auch killen können, durch z.B. einem Stop- Button.<br />
Geht das mit der ID?<br />
Und wenn ja, wie?</p>
<p>Wegen den Fehlern:</p>
<pre><code>...
public:		// User declarations
        unsigned __stdcall Warten(void*);
        __fastcall TForm1(TComponent* Owner);
};
</code></pre>
<pre><code>__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 ...
 _beginthreadex(NULL, 0, Warten, NULL, 0, &amp;ThreadID);
 ...
}

unsigned __stdcall TForm1::Warten(void *)
{
 ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1254434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254434</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 09:47:58 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 10:14:12 GMT]]></title><description><![CDATA[<p>Erstens: Callback-Mechanismen haben so ihre (hm) Probleme mit Klassenmethoden (da fehlt einfach der this-Zeiger) - nimm eine globale Funktion oder eine statische Methode.</p>
<p>Zweitens: Killen von außen ist schlecht. Beenden von innen ist besser:</p>
<pre><code class="language-cpp">class TForm1
{
  ...
  bool ende;//Endemarke für Thread
  static unsigned __stdcall Warten(void*);//Threadfunktion
  ...
};

unsigned __stdcall TForm1::Warten(void *param)
{
  TForm1* pthis = static_cast&lt;TForm1*&gt;(param);
  while(!pthis-&gt;ende)
  {
    ...//mach was
  }
}

__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner), ende(false)
{
  ...

  _beginthreadex(NULL, 0, Warten, this, 0, &amp;ThreadID);
  ...
}

int TForm1::OnButtonStop()
{
  ende=true;//&lt;- dadurch wird die Schleife in der Thread-Funktion SAUBER beendet
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1254444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254444</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Mar 2007 10:14:12 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 10:26:25 GMT]]></title><description><![CDATA[<p>Danke aber was genau soll<br />
[C++ Error] Unit1.cpp(173): E2231 Member TForm1::FileListBox1 cannot be used without an object<br />
heißen?<br />
Denn diese Meldung erscheint nun...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254450</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 10:26:25 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 10:38:00 GMT]]></title><description><![CDATA[<p>Achso und gibt es denn eine Funktion, mit der man einen Thread mit Hilfe der ID killen kann??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254460</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 10:38:00 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 11:06:00 GMT]]></title><description><![CDATA[<p>TheCaleb schrieb:</p>
<blockquote>
<p>Danke aber was genau soll<br />
[C++ Error] Unit1.cpp(173): E2231 Member TForm1::FileListBox1 cannot be used without an object<br />
heißen?<br />
Denn diese Meldung erscheint nun...</p>
</blockquote>
<p>Dadurch, daß die Threadfunktion statisch ist, kann sie nicht mehr direkt auf &quot;normale&quot; Member zugreifen (eine Einschränkung gibt's immer). Also mußt du indirekt zugreifen über <code>pthis-&gt;FileListBox1</code> .</p>
<p>Und wenn du unbedingt den Thread von außen killen willst, nimm TeminateThread (mit dem Rückgabewert von _beginthreadex() als Thread-Handle).</p>
<p>Aber auch auf die Gefahr hin, mich zu wiederholen: <strong>TU'S LIEBER NICHT</strong>. Auf diese Weise wird der Thread SOFORT abgeschossen, ohne die Chance auf irgendwelche Aufräumarbeiten. Wenn du Glück hast, bleibt nur ein Speicherleck, aber mit etwas Pech blockierst du dir damit das gesamte Programm. Die bessere Lösung ist es, den Thread sanft einschlafen zu lassen (Code siehe oben) - das Hauptprogramm setzt 'ende' auf true und der Thread erkennt diese Änderung bei nächster Gelegenheit und beendet sich selbst (inklusive Aufräumarbeiten).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254480</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Mar 2007 11:06:00 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 11:28:48 GMT]]></title><description><![CDATA[<p>Ist ok, dann werde ich die sanfte Methode von dir einbauen!</p>
<p>Ähm wie kann ich denn diese this in</p>
<pre><code>_beginthreadex(NULL, 0, Warten, this, 0, &amp;ThreadID);
</code></pre>
<p>und</p>
<pre><code>TForm1* pthis = static_cast&lt;TForm1*&gt;(param);
</code></pre>
<p>auf mehrere Funktionen anwenden??<br />
Also die Warten Funktion ruft ein weitern Thread auf, wo die FileListBox1 gebraucht wird.</p>
<p>Ich habe das nun so gemacht, doch das geht nicht:</p>
<pre><code>__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
   ...
   _beginthreadex(NULL, 0, Warten, this, 0, &amp;ThreadID);
   ...
}

unsigned __stdcall TForm1::Warten(void *param)
{
   TForm1* pthis = static_cast&lt;TForm1*&gt;(param);
   ...
   _beginthreadex(NULL, 0, MoveFiles,pthis, 0, &amp;ThreadID);
}

unsigned __stdcall TForm1::MoveFiles(void *param)
{
   TForm1* pthis = static_cast&lt;TForm1*&gt;(param);
   ...
   pthis-&gt;FileListBox1-&gt;Update();
   ... 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1254495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254495</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 11:28:48 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 11:55:54 GMT]]></title><description><![CDATA[<p>Bist du sicher, daß es nötig ist, so mit Threads um sich zu werfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254523</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Mar 2007 11:55:54 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 12:10:44 GMT]]></title><description><![CDATA[<p>Ja ich brauche mehrere Threads!<br />
Wie mache ich das denn, dass ich dem anderen Thread ebenfalls einen Zufgiff auf die FileListBox1 geben kann, ohne ein Fehler zu erzeugen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254529</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 12:10:44 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 12:19:04 GMT]]></title><description><![CDATA[<p>Wenn es dir nur um den Compiler geht, ist das oben der richtige Weg. Allerdings kenne ich es zumindest von MFC, daß du nicht Thread-übergreifend auf Fenster und Dialogitems zugreifen kannst (wie das bei Borland aussieht, mußt du die Experten fragen). D.h. die Arbeitsthreads sollten per SendMessage() eine Nachricht an den Haupt-(=Anzeige-)Thread senden, der sich dann um die Darstellung kümmern kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254535</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Mar 2007 12:19:04 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 12:56:59 GMT]]></title><description><![CDATA[<p>EIgentlich hat es nichts mit MFC oder Borland zu tun, sondern *darf* aus Gründen der WinAPI nicht Thread-übergreifend auf andere Fenster zugreifen!<br />
Bei einigen Nachrichten geht es wohl (zufällig), aber ob dies in Vista oder späteren OS-Version der Fall ist, ist MS überlassen. Es ist dokumentiert, dass man es nicht *darf* (kann gerade nur die Stelle nicht finden <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/1254580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254580</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Wed, 28 Mar 2007 12:56:59 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 12:59:06 GMT]]></title><description><![CDATA[<p>Es geht bei mir da drum, dass die FileListBox1 vom Thread aus geupdatet werden muss und ich Strings und den Count von dieser benötige, doch weiß ich halt leider nicht, wie ich das erreichen kann, da mir dann Borland eine Fehlermeldung entgegen wirft, vonwegen dass ich nicht den CoInitializer durchgeführt habe oder so ähnlich!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254583</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 12:59:06 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 13:30:41 GMT]]></title><description><![CDATA[<p>Ok, also ich habe in dem Warten Thread das Update von der FileListBox gemacht, kein Problem, doch wenn ich in diesem Thread einen weiteren Thread, wie folgt aufrufen lasse, tritt der Fehler auf!</p>
<pre><code>_beginthreadex(NULL, 0, MoveFiles,&amp;FileL, 0, &amp;ThreadID);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1254618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254618</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 13:30:41 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Wed, 28 Mar 2007 14:37:14 GMT]]></title><description><![CDATA[<p>Der Fehler lautet: Project ... raised exception class EOleSysError with message 'CoInitialize wurde nicht aufgerufen'. Process stopped. Use Step or Run to continue.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254700</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 14:37:14 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Thu, 29 Mar 2007 06:46:28 GMT]]></title><description><![CDATA[<p>Ich brauche immer noch Hilfe!<br />
Hat Keiner eine Idee??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255077</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Thu, 29 Mar 2007 06:46:28 GMT</pubDate></item><item><title><![CDATA[Reply to Threadfunktion on Thu, 29 Mar 2007 07:04:14 GMT]]></title><description><![CDATA[<p>TheCaleb schrieb:</p>
<blockquote>
<p>Der Fehler lautet: Project ... raised exception class EOleSysError with message 'CoInitialize wurde nicht aufgerufen'. Process stopped. Use Step or Run to continue.</p>
</blockquote>
<p>Und? Was sagt dieser Fehler: 'CoInitialize wurde nicht aufgerufen'<br />
Ist das so schwer? Ruf diese Funktion auf. In der MSDN steht genug dazu Dir zu erklären warum das notwendig ist.</p>
<p>Solche Fragen zu posten finde ich schon albern. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> Just my 2 cents</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255090</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 29 Mar 2007 07:04:14 GMT</pubDate></item></channel></rss>