<?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[Socket aus Thread starten (Dringend!!!)]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe folgendes Problem: (WinXP Prof, MS Visual C++ 6.0)</p>
<p>ich habe in meiner Anwendung einen Thread</p>
<p>Aufruf:</p>
<pre><code class="language-cpp">unsigned long ulThread(0);
unsigned uiThreadAddr(0);
ulThread =_beginthreadex(NULL,0,Ethernet,this,0,&amp;uiThreadAddr);
</code></pre>
<p>Thread:</p>
<pre><code class="language-cpp">unsigned __stdcall Ethernet(void* pThis)
{
	CMySocket Sock;
	Sock.Create();
	...
	return 0;
}
</code></pre>
<p>Da bekomme ich immer eine Fehlermeldung Access Violation 0xC0000005</p>
<p>Wenn ich außerhalb des Threads eine neue Funktion erstelle z.B.:</p>
<pre><code class="language-cpp">void xxx::Ethernet()
{
      CMySocket Sock;
      Sock.Create();
      ...
      return 0;
}
</code></pre>
<p>und diese aus dem Thread aufrufe, ebenfalls Fehlermeldung.</p>
<p>Nur wenn ich ohne den Thread arbeite funktionierts!!!</p>
<p>Kann man aus einem Thread raus keinen Socket starten???</p>
<p>Vielen Dank für Eure Hilfe<br />
MfG Dippi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/134301/socket-aus-thread-starten-dringend</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 11:42:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/134301.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Jan 2006 07:57:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Socket aus Thread starten (Dringend!!!) on Wed, 25 Jan 2006 07:57:07 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe folgendes Problem: (WinXP Prof, MS Visual C++ 6.0)</p>
<p>ich habe in meiner Anwendung einen Thread</p>
<p>Aufruf:</p>
<pre><code class="language-cpp">unsigned long ulThread(0);
unsigned uiThreadAddr(0);
ulThread =_beginthreadex(NULL,0,Ethernet,this,0,&amp;uiThreadAddr);
</code></pre>
<p>Thread:</p>
<pre><code class="language-cpp">unsigned __stdcall Ethernet(void* pThis)
{
	CMySocket Sock;
	Sock.Create();
	...
	return 0;
}
</code></pre>
<p>Da bekomme ich immer eine Fehlermeldung Access Violation 0xC0000005</p>
<p>Wenn ich außerhalb des Threads eine neue Funktion erstelle z.B.:</p>
<pre><code class="language-cpp">void xxx::Ethernet()
{
      CMySocket Sock;
      Sock.Create();
      ...
      return 0;
}
</code></pre>
<p>und diese aus dem Thread aufrufe, ebenfalls Fehlermeldung.</p>
<p>Nur wenn ich ohne den Thread arbeite funktionierts!!!</p>
<p>Kann man aus einem Thread raus keinen Socket starten???</p>
<p>Vielen Dank für Eure Hilfe<br />
MfG Dippi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975561</guid><dc:creator><![CDATA[Dippi_81]]></dc:creator><pubDate>Wed, 25 Jan 2006 07:57:07 GMT</pubDate></item><item><title><![CDATA[Reply to Socket aus Thread starten (Dringend!!!) on Wed, 25 Jan 2006 10:46:12 GMT]]></title><description><![CDATA[<p>Hallo,<br />
also die mir bekannten Threads arbeiten nur mit void* als Rückgabetyp, aber das kann auch bei anderen Threads anders sein. Sicher bin ich mir nur das deine untere Funktion gar nichts zurückgeben dürfte.<br />
Funktioniert denn dein Thread ohne den Socket?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975742</guid><dc:creator><![CDATA[Jaschi]]></dc:creator><pubDate>Wed, 25 Jan 2006 10:46:12 GMT</pubDate></item><item><title><![CDATA[Reply to Socket aus Thread starten (Dringend!!!) on Wed, 25 Jan 2006 11:45:47 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin mir nicht sicher ob ich Dir da weiterhelfen kann, aber in<br />
meiner Software würde ich das in etwa nachfolgend schreiben:</p>
<pre><code>DWORD ulThread;
typedef unsigned (__stdcall *PTHREAD_START) (void*);
ulThread = _beginthreadex( NULL, NULL, (PTHREAD_START)Ethernet, (LPVOID)&amp; this, 0, NULL );
if (ulThread== -1 || ulThread== 0)
{
...error handling...
}
else
{
CloseHandle( (HANDLE)ulThread );
}
</code></pre>
<p>Und wie &quot;Jaschi&quot; geschrieben hat sollte &quot;Ethernet&quot; void sein und Du<br />
übergibst dafür ja den &quot;this&quot; Parameter.<br />
Vielleicht kommst Du mit dem Vorstehenden etwas weiter <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>
<p>MFG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975781</guid><dc:creator><![CDATA[ZZR-1100]]></dc:creator><pubDate>Wed, 25 Jan 2006 11:45:47 GMT</pubDate></item></channel></rss>