<?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[hauptnachrichtenschleife, wo startet man am besten einen thread?]]></title><description><![CDATA[<p>hi!</p>
<p>ich hab nun das problem ich starte einen</p>
<pre><code class="language-cpp">boost::thread
</code></pre>
<p>(welcher so lange laufen sollte, bis die gui geschlossen wird) in</p>
<pre><code class="language-cpp">BOOL CClient_GUIDlg::OnInitDialog()
</code></pre>
<p>und in diesem thread wird ein object einer klasse instanziert....<br />
wenn ich nun die gui schliesse, dann wird der boost::thread anscheinend nicht zerstört...und der konstruktor des objectes wird nicht aufgerufen == speicherleck;-(</p>
<p>wo sollt ich am besten einen boost::thread starten, wenn er gleichzeitig mit der gui gestartet wird??</p>
<p>wenn ich den boost thread hier instanziere, dann hab ich nen schönen linker error;-( find ich auch irgendwie hier nicht richtig</p>
<pre><code class="language-cpp">CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	// SocketThread starten
	boost::thread thrd1(&amp;SocketThread);
         thrd1.join(); // warten bis thrd1 fertig
}
</code></pre>
<p>Client_GUIDlg.obj : error LNK2019: unresolved external symbol &quot;public: virtual __thiscall CAboutDlg::~CAboutDlg(void)&quot; (??1CAboutDlg@@UAE@XZ) referenced in function &quot;public: virtual void * __thiscall CAboutDlg::`scalar deleting destructor'(unsigned int)&quot; (??_GCAboutDlg@@UAEPAXI@Z)<br />
Debug/Client_GUI.exe : fatal error LNK1120: 1 unresolved externals</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/110607/hauptnachrichtenschleife-wo-startet-man-am-besten-einen-thread</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 02:32:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/110607.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 22 May 2005 20:47:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Sun, 22 May 2005 20:47:57 GMT]]></title><description><![CDATA[<p>hi!</p>
<p>ich hab nun das problem ich starte einen</p>
<pre><code class="language-cpp">boost::thread
</code></pre>
<p>(welcher so lange laufen sollte, bis die gui geschlossen wird) in</p>
<pre><code class="language-cpp">BOOL CClient_GUIDlg::OnInitDialog()
</code></pre>
<p>und in diesem thread wird ein object einer klasse instanziert....<br />
wenn ich nun die gui schliesse, dann wird der boost::thread anscheinend nicht zerstört...und der konstruktor des objectes wird nicht aufgerufen == speicherleck;-(</p>
<p>wo sollt ich am besten einen boost::thread starten, wenn er gleichzeitig mit der gui gestartet wird??</p>
<p>wenn ich den boost thread hier instanziere, dann hab ich nen schönen linker error;-( find ich auch irgendwie hier nicht richtig</p>
<pre><code class="language-cpp">CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	// SocketThread starten
	boost::thread thrd1(&amp;SocketThread);
         thrd1.join(); // warten bis thrd1 fertig
}
</code></pre>
<p>Client_GUIDlg.obj : error LNK2019: unresolved external symbol &quot;public: virtual __thiscall CAboutDlg::~CAboutDlg(void)&quot; (??1CAboutDlg@@UAE@XZ) referenced in function &quot;public: virtual void * __thiscall CAboutDlg::`scalar deleting destructor'(unsigned int)&quot; (??_GCAboutDlg@@UAEPAXI@Z)<br />
Debug/Client_GUI.exe : fatal error LNK1120: 1 unresolved externals</p>
]]></description><link>https://www.c-plusplus.net/forum/post/793848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/793848</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Sun, 22 May 2005 20:47:57 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Mon, 23 May 2005 05:38:11 GMT]]></title><description><![CDATA[<p>du musst bei ressoucenansicht gewöhnlich focus auf hauptdialog haben ( oder auch nicht und dann per hand umstellen ) und bei den funktionen eine OnDestroy hinzufügen ( alles per assistenten ) oder alles per Hand einfügen.</p>
<p>Frag mich nicht, warum die nicht gleich dabei ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/793899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/793899</guid><dc:creator><![CDATA[newkid_]]></dc:creator><pubDate>Mon, 23 May 2005 05:38:11 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Mon, 23 May 2005 05:39:26 GMT]]></title><description><![CDATA[<p>PS:<br />
OnInit() --&gt; starten<br />
OnDestroy() --&gt; stoppen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/793900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/793900</guid><dc:creator><![CDATA[newkid_]]></dc:creator><pubDate>Mon, 23 May 2005 05:39:26 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Mon, 23 May 2005 06:06:18 GMT]]></title><description><![CDATA[<p>hi, ich hab ja, aber ich weiss nicht ob du boost::thread kennst? hab den in der klasse CClient_GUIDlg, ich muss den also per konstruktor initialisieren, und wenn man das macht beginnt der thread auch schon zu laufen...</p>
<p>warum ist der boost::thread in der klasse, damit er vom destr. der klasse wieder gelöscht wird, weil ich ja im thread selber eine instanz erzeuge...</p>
<p>hmm.... <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="😕"
    /><br />
cu</p>
<pre><code class="language-cpp">BOOL CClient_GUIDlg::OnInitDialog()
{
	CDialog::OnInitDialog(); 

        ........
        ........
        return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}

void CClient_GUIDlg::OnDestroy()
{
	CDialog::OnDestroy();

	// TODO: Add your message handler code here
	m_Popup.DestroyMenu();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/793905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/793905</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Mon, 23 May 2005 06:06:18 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Mon, 23 May 2005 08:15:35 GMT]]></title><description><![CDATA[<p>naja es liegt doch an etwas anderem:</p>
<pre><code class="language-cpp">class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialogfelddaten
	enum { IDD = IDD_ABOUTBOX };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV-Unterstützung

// Implementierung
protected:
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()

// CClient_GUIDlg Dialogfeld

CClient_GUIDlg::CClient_GUIDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CClient_GUIDlg::IDD, pParent)
	, m_onlineUser(0)
	, m_counter(0)
{
	m_hIcon = AfxGetApp()-&gt;LoadIcon(IDR_MAINFRAME);
}

// CClient_GUIDlg Meldungshandler

BOOL CClient_GUIDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Hinzufügen des Menübefehls &quot;Info...&quot; zum Systemmenü.

	..............
         ..............

	//boost::thread thrd1(&amp;SocketThread);

	return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}

void MessageReceiveThread()
{
}

void SocketThread()
{
         boost::thread thrd2(&amp;MessageReceiveThread);
	//thrd2.join();

}
</code></pre>
<p>hab nur mal die thread funktionen rein getan, ohne den thread zu starten!!!<br />
wenn ich boost::thread thrd2(&amp;MessageReceiveThread); drinnen habe und die GUI beende, dann bekomme ich:</p>
<pre><code class="language-cpp">Detected memory leaks!
Dumping objects -&gt;
{142} normal block at 0x00326640, 24 bytes long.
 Data: &lt;He              &gt; 48 65 14 00 FF FF FF FF 00 00 00 00 00 00 00 00 
{141} normal block at 0x003267D8, 8 bytes long.
 Data: &lt;@f2     &gt; 40 66 32 00 01 CD CD CD 
Object dump complete.
The program '[2348] Client_GUI.exe: Native' has exited with code 2 (0x2).
</code></pre>
<p>wenn ich boost::thread thrd2(&amp;MessageReceiveThread); weg kommentiere und die GUI beende dann bekomm ich kein Memory leck!!!!<br />
ist doch komisch????? versteh ich nicht!!!</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/793948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/793948</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Mon, 23 May 2005 08:15:35 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Mon, 23 May 2005 09:16:39 GMT]]></title><description><![CDATA[<p>Das join() ist nicht dafür da um den Thread zu starten, sondern um dem Thread beizutreten. Ist z.B. nützlich wenn man warten will, bis der Thread beendet ist. Was aber bei dir ja nicht der Fall ist?</p>
<p>Der Thread wird gestartet, sobald du ein boost::thread instanzierst, was ja mit der Zeile boost::thread thrd2(&amp;MessageReceiveThread); der Fall ist.</p>
<p>Da du thrd2 auf dem Stack instanzierst, wird thrd2 auch autom. gelöscht, wenn SocketThread() verlassen wird! (Somit hinterlässt thrd2 kein Leck)</p>
<p>Da MessageReceiveThread() aber leer ist, ist die Beendigung von thrd2 auch umgehend im nächsten Moment der Fall. Alles geht ruck zuck vorbei, thrd2 lebt nicht gerade lange. <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>
<p>Du muß in MessageReceiveThread() irgend eine dauerhafte Aufgabe einbauen (Schleife o.ä.) und das join() auch weglassen. Weiterhin würde ich thrd2 dynamisch auf dem Heap instazieren, damit der Thread nicht bei verlassen von SocketThred() zerstört wird. Am besten in deiner Klasse ein boost::thread *thrd2 als Member anlegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/793987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/793987</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 23 May 2005 09:16:39 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Mon, 23 May 2005 10:36:31 GMT]]></title><description><![CDATA[<blockquote>
<p>Das join() ist nicht dafür da um den Thread zu starten, sondern um dem Thread beizutreten. Ist z.B. nützlich wenn man warten will, bis der Thread beendet ist. Was aber bei dir ja nicht der Fall ist?</p>
</blockquote>
<p>naja join ist auch auskommentiert;-)</p>
<blockquote>
<p>Du muß in MessageReceiveThread() irgend eine dauerhafte Aufgabe einbauen (Schleife o.ä.) und das join() auch weglassen. Weiterhin würde ich thrd2 dynamisch auf dem Heap instazieren, damit der Thread nicht bei verlassen von SocketThred() zerstört wird. Am besten in deiner Klasse ein boost::thread *thrd2 als Member anlegen.</p>
</blockquote>
<p>schau dir das jetzt mal an:<br />
hab noch immer ein Speicherleck;-( aber beide threads leben jetzt bis zum ende!! hm...<br />
ja dynamisch anlegen, aber wo? brauch ja dann auch noch ein delete...</p>
<pre><code class="language-cpp">void MessageReceiveThread()
{
	std::string buffer;

	while(1)
	{
	}
}

void SocketThread()
{

	boost::thread thrd2(&amp;MessageReceiveThread);

	while(1)
	{
	}
}

BOOL CClient_GUIDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Hinzufügen des Menübefehls &quot;Info...&quot; zum Systemmenü.

	......
        ......

	boost::thread thrd1(&amp;SocketThread);

	return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/794047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/794047</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Mon, 23 May 2005 10:36:31 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Mon, 23 May 2005 12:21:03 GMT]]></title><description><![CDATA[<p>warum funktioniert dsa nicht? langsam verzweifle ich;-(<br />
cu</p>
<pre><code class="language-cpp">void SocketThread()
{
	while(1)
	{
	}
}

BOOL CClient_GUIDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Hinzufügen des Menübefehls &quot;Info...&quot; zum Systemmenü.

         std::auto_ptr&lt;boost::thread&gt;(new boost::thread(&amp;SocketThread));

	return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/794123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/794123</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Mon, 23 May 2005 12:21:03 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Mon, 23 May 2005 12:21:04 GMT]]></title><description><![CDATA[<p>warum funktioniert dsa nicht? langsam verzweifle ich;-(<br />
cu</p>
<pre><code class="language-cpp">void SocketThread()
{
	while(1)
	{
	}
}

BOOL CClient_GUIDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Hinzufügen des Menübefehls &quot;Info...&quot; zum Systemmenü.

         std::auto_ptr&lt;boost::thread&gt;(new boost::thread(&amp;SocketThread));

	return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/794125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/794125</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Mon, 23 May 2005 12:21:04 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Mon, 23 May 2005 12:21:04 GMT]]></title><description><![CDATA[<p>warum funktioniert dsa nicht? langsam verzweifle ich;-(<br />
cu</p>
<pre><code class="language-cpp">void SocketThread()
{
	while(1)
	{
	}
}

BOOL CClient_GUIDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Hinzufügen des Menübefehls &quot;Info...&quot; zum Systemmenü.

         std::auto_ptr&lt;boost::thread&gt;(new boost::thread(&amp;SocketThread));

	return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/794126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/794126</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Mon, 23 May 2005 12:21:04 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Mon, 23 May 2005 12:21:05 GMT]]></title><description><![CDATA[<p>warum funktioniert dsa nicht? langsam verzweifle ich;-(<br />
cu</p>
<pre><code class="language-cpp">void SocketThread()
{
	while(1)
	{
	}
}

BOOL CClient_GUIDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Hinzufügen des Menübefehls &quot;Info...&quot; zum Systemmenü.

         std::auto_ptr&lt;boost::thread&gt;(new boost::thread(&amp;SocketThread));

	return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/794127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/794127</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Mon, 23 May 2005 12:21:05 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Mon, 23 May 2005 12:21:05 GMT]]></title><description><![CDATA[<p>warum funktioniert dsa nicht? langsam verzweifle ich;-(<br />
cu</p>
<pre><code class="language-cpp">void SocketThread()
{
	while(1)
	{
	}
}

BOOL CClient_GUIDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Hinzufügen des Menübefehls &quot;Info...&quot; zum Systemmenü.

         std::auto_ptr&lt;boost::thread&gt;(new boost::thread(&amp;SocketThread));

	return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/794124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/794124</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Mon, 23 May 2005 12:21:05 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Mon, 23 May 2005 14:06:09 GMT]]></title><description><![CDATA[<p>warum funktioniert das nicht, bekomme beim beenden der GUI wieder ein speicheleck!!!? hab nun den thread am heap angelegt...langsam verzweifle ich;-(<br />
cu</p>
<pre><code class="language-cpp">void SocketThread()
{
	while(1)
	{
	}
}

BOOL CClient_GUIDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Hinzufügen des Menübefehls &quot;Info...&quot; zum Systemmenü.

         std::auto_ptr&lt;boost::thread&gt;(new boost::thread(&amp;SocketThread));

	return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/794250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/794250</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Mon, 23 May 2005 14:06:09 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Tue, 24 May 2005 09:33:24 GMT]]></title><description><![CDATA[<p>jemand ne idee?<br />
cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/794817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/794817</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Tue, 24 May 2005 09:33:24 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Tue, 24 May 2005 10:26:37 GMT]]></title><description><![CDATA[<p>Eine Frage: Wie stellst du denn das Speicherleck fest? Woran erkennst du das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/794869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/794869</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Tue, 24 May 2005 10:26:37 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Tue, 24 May 2005 10:36:15 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Eine Frage: Wie stellst du denn das Speicherleck fest? Woran erkennst du das?</p>
</blockquote>
<p>wahrscheinlich debugmode</p>
<p>und da beim programmbeenden muss ja unten</p>
<p>programm wurde mit 0x00 beendet dranstehen.</p>
<p>wenn speicherlecks steht davor irgendwas mit</p>
<p>BLOCK dann die hexzahlen wo halt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/794874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/794874</guid><dc:creator><![CDATA[newkid_]]></dc:creator><pubDate>Tue, 24 May 2005 10:36:15 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Tue, 24 May 2005 15:13:22 GMT]]></title><description><![CDATA[<p>hm...ich weiss nicht mehr weiter;-(<br />
ja im debug modus steht da beim beenden der GUI:</p>
<pre><code class="language-cpp">'Client_GUI.exe': Loaded 'C:\Client_GUI.exe', Symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\ntdll.dll', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\kernel32.dll', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\mfc71d.dll', Symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\msvcr71d.dll', Symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\gdi32.dll', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\user32.dll', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\ADVAPI32.DLL', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\RPCRT4.DLL', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\SHLWAPI.DLL', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\MSVCRT.DLL', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\COMCTL32.DLL', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\OLEAUT32.DLL', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\ole32.dll', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\msvcp71d.dll', Symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\WS2_32.DLL', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\WS2HELP.DLL', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\Informatik\Informatik_Project\Client_GUI\Debug\boost_thread-vc71-mt-gd-1_32.dll', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\MFC71DEU.DLL', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\UXTHEME.DLL', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\Programme\Gemeinsame Dateien\Symantec Shared\AntiSpam\ASOEHOOK.DLL', No symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\msvcr71.dll', Symbols loaded.
'Client_GUI.exe': Loaded 'C:\WINDOWS\SYSTEM32\MSCTF.DLL', No symbols loaded.
Detected memory leaks!
Dumping objects -&gt;
{142} normal block at 0x00326640, 24 bytes long.
 Data: &lt;He              &gt; 48 65 14 00 FF FF FF FF 00 00 00 00 00 00 00 00 
{141} normal block at 0x003267D8, 8 bytes long.
 Data: &lt;@f2     &gt; 40 66 32 00 01 CD CD CD 
Object dump complete.
The thread 'Win32 Thread' (0xbb4) has exited with code 2 (0x2).
The program '[2144] Client_GUI.exe: Native' has exited with code 2 (0x2).
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/795136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/795136</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Tue, 24 May 2005 15:13:22 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Tue, 24 May 2005 16:03:41 GMT]]></title><description><![CDATA[<p>hi!<br />
ich poste mal die: Client_GUIDlg.cpp<br />
<a href="http://www.rafb.net/paste/results/hvzlWp67.html" rel="nofollow">http://www.rafb.net/paste/results/hvzlWp67.html</a></p>
<p>vielleicht könnt ihr ja was erkennen...</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/795177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/795177</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Tue, 24 May 2005 16:03:41 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Sat, 28 May 2005 12:32:18 GMT]]></title><description><![CDATA[<p>hallo,<br />
jemand ne idee was man da machen kann?</p>
<p>bye</p>
]]></description><link>https://www.c-plusplus.net/forum/post/797818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/797818</guid><dc:creator><![CDATA[boost_user]]></dc:creator><pubDate>Sat, 28 May 2005 12:32:18 GMT</pubDate></item><item><title><![CDATA[Reply to hauptnachrichtenschleife, wo startet man am besten einen thread? on Thu, 13 Jul 2006 22:39:42 GMT]]></title><description><![CDATA[<p>Du musst einfach den Thread beenden bevor du das Programm beendest.</p>
<p>--&gt; thread.join(); // wartet auf Threadende</p>
<p>Problem ist nur:</p>
<p>void SocketThread()<br />
{<br />
while(1)<br />
{<br />
}<br />
}<br />
// &lt;--- auf das ende wartest du ewig.</p>
<p>Du musst eine variable (bool) für des Ende erstellen.<br />
Auf diese Variable nur über boost::mutex zugreifen.<br />
Anschließend kannste die zum beenden gleich true setzen um die While schleife zu beenden.</p>
<p>cu ralf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1097442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097442</guid><dc:creator><![CDATA[EinBenutzer:-)]]></dc:creator><pubDate>Thu, 13 Jul 2006 22:39:42 GMT</pubDate></item></channel></rss>