<?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[Eventhandler wird nicht ausgeführt.]]></title><description><![CDATA[<p>Hallo ich habe eine Klasse &quot;CMessengerSocket&quot; erstellt, die von &quot;CSocket&quot; abgeleitet ist.</p>
<p>Die Verbindungsherstellung erfolgt über den folgenden Code:</p>
<pre><code class="language-cpp">void CDesktopChatMessengerApp::ConnectServer()
{
	//Initialization
	m_NotificationServer = &quot;messenger.hotmail.com&quot;;
	m_NotificationServerPort = 1863;

	//Create connection
	CMessengerSocket* pMessengerSocket = new CMessengerSocket;
	m_pMessengerSocket = pMessengerSocket;
	m_pMessengerSocket-&gt;Create();
	m_pMessengerSocket-&gt;Connect(m_NotificationServer, m_NotificationServerPort);

}
</code></pre>
<p>Der Verbingunsaufbau verläuft erfolgreich. (Mit netstat kann man die Verbindung sehen.)<br />
Nun sollte eigentlich der Aufruf des Eventhandlers CMessengerSocket::OnConnect() erfolgen.<br />
Die Deklaration:</p>
<pre><code class="language-cpp">public:
	virtual void OnConnect(int nErrorCode);
</code></pre>
<p>Die überschriebene Funktion:</p>
<pre><code class="language-cpp">void CMessengerSocket::OnConnect(int nErrorCode)
{
	// TODO: Add your specialized code here and/or call the base class
	if(0 != nErrorCode)
	{	
		m_ConnectionFailed.LoadString(IDS_CONNECTION_FAILED);
		AfxMessageBox(m_ConnectionFailed);
	}
	else
	{
		//Call NewFrame() to create new mainframe
		theApp.NewFrame();
	}

	CSocket::OnConnect(nErrorCode);
}
</code></pre>
<p>Doch irgendwie wird der Eventhandler einfach nicht ausgeführt, und ich finde einfach nicht die Ursache. Keine Errors beim Kompilieren.</p>
<p>J!M!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196954/eventhandler-wird-nicht-ausgeführt</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 17:36:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196954.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 Nov 2007 21:03:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Sun, 04 Nov 2007 21:03:51 GMT]]></title><description><![CDATA[<p>Hallo ich habe eine Klasse &quot;CMessengerSocket&quot; erstellt, die von &quot;CSocket&quot; abgeleitet ist.</p>
<p>Die Verbindungsherstellung erfolgt über den folgenden Code:</p>
<pre><code class="language-cpp">void CDesktopChatMessengerApp::ConnectServer()
{
	//Initialization
	m_NotificationServer = &quot;messenger.hotmail.com&quot;;
	m_NotificationServerPort = 1863;

	//Create connection
	CMessengerSocket* pMessengerSocket = new CMessengerSocket;
	m_pMessengerSocket = pMessengerSocket;
	m_pMessengerSocket-&gt;Create();
	m_pMessengerSocket-&gt;Connect(m_NotificationServer, m_NotificationServerPort);

}
</code></pre>
<p>Der Verbingunsaufbau verläuft erfolgreich. (Mit netstat kann man die Verbindung sehen.)<br />
Nun sollte eigentlich der Aufruf des Eventhandlers CMessengerSocket::OnConnect() erfolgen.<br />
Die Deklaration:</p>
<pre><code class="language-cpp">public:
	virtual void OnConnect(int nErrorCode);
</code></pre>
<p>Die überschriebene Funktion:</p>
<pre><code class="language-cpp">void CMessengerSocket::OnConnect(int nErrorCode)
{
	// TODO: Add your specialized code here and/or call the base class
	if(0 != nErrorCode)
	{	
		m_ConnectionFailed.LoadString(IDS_CONNECTION_FAILED);
		AfxMessageBox(m_ConnectionFailed);
	}
	else
	{
		//Call NewFrame() to create new mainframe
		theApp.NewFrame();
	}

	CSocket::OnConnect(nErrorCode);
}
</code></pre>
<p>Doch irgendwie wird der Eventhandler einfach nicht ausgeführt, und ich finde einfach nicht die Ursache. Keine Errors beim Kompilieren.</p>
<p>J!M!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397770</guid><dc:creator><![CDATA[a-jage]]></dc:creator><pubDate>Sun, 04 Nov 2007 21:03:51 GMT</pubDate></item><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Mon, 05 Nov 2007 03:43:49 GMT]]></title><description><![CDATA[<p>Wenn du OnConnect verwenden willst musst du schon von CAsyncSocket ableiten und nicht von CSocket.<br />
CSocket kennt kein OnConnect.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397831</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 05 Nov 2007 03:43:49 GMT</pubDate></item><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Mon, 05 Nov 2007 17:06:36 GMT]]></title><description><![CDATA[<p>Doch. Tut es eigentlich schon... Ich gehe zumindest davon aus, denn der Code</p>
<pre><code>void CMessengerSocket::OnConnect(int nErrorCode)
{
    // TODO: Add your specialized code here and/or call the base class

    CSocket::OnConnect(nErrorCode);
}
</code></pre>
<p>wurde vom Assisten automatisch hinzugefuegt, nachdem ich im Eigenschaftsfenster/Button &quot;Overriden&quot; der Klasse CMessengerSocket beim Event &quot;OnConnect&quot; auf &quot;<em>add</em> OnConnect()&quot; geklickt habe.</p>
<p>Und ausserdem ist doch CSocket eine abgeleitete Klasse von CAsyncSocket, also muesste es ja den Eventhandler geerbt haben..?</p>
<p>A-jage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398193</guid><dc:creator><![CDATA[a-jage]]></dc:creator><pubDate>Mon, 05 Nov 2007 17:06:36 GMT</pubDate></item><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Mon, 05 Nov 2007 17:29:57 GMT]]></title><description><![CDATA[<p>Hupps, hast du wohl recht <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="🙂"
    /><br />
Versuchs trotzdem mal mit CAsyncSocket...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398203</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 05 Nov 2007 17:29:57 GMT</pubDate></item><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Mon, 05 Nov 2007 19:50:20 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ein Blick in die MSDN verrät:</p>
<p>Remarks:<br />
In CSocket, the OnConnect notification function is never called. For connections, you simply call Connect, which will return when the connection is completed (either successfully or in error). How connection notifications are handled is an MFC implementation detail.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398292</guid><dc:creator><![CDATA[Frank+]]></dc:creator><pubDate>Mon, 05 Nov 2007 19:50:20 GMT</pubDate></item><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Tue, 06 Nov 2007 14:25:57 GMT]]></title><description><![CDATA[<p>Ahh ok...</p>
<p>Doch.<br />
1. Warum nicht?<br />
2. Was ist wenn ich beispielsweise Funktionen aus der Klasse CSync brauche und den Eventhandler OnConnect()?</p>
<p>A-jage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398695</guid><dc:creator><![CDATA[a-jage]]></dc:creator><pubDate>Tue, 06 Nov 2007 14:25:57 GMT</pubDate></item><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Tue, 06 Nov 2007 16:10:31 GMT]]></title><description><![CDATA[<p>ad 2.: Pech. Um was für ne Funktion gehts denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398783</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 06 Nov 2007 16:10:31 GMT</pubDate></item><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Wed, 07 Nov 2007 21:52:04 GMT]]></title><description><![CDATA[<p>Naja, ich brauch ja jetz nicht wirklich unbedingt eine Funktion aus CSocket(), aber was wenn...? Zum Beispiel OnMessagePending()? Da is doch ein Denkfehler bei den Entwicklern oda nicht...?</p>
<p>Und was is mit erstens..? :):)</p>
<p>A-jage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399482</guid><dc:creator><![CDATA[a-jage]]></dc:creator><pubDate>Wed, 07 Nov 2007 21:52:04 GMT</pubDate></item><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Thu, 08 Nov 2007 14:38:30 GMT]]></title><description><![CDATA[<p>OnMessagePending braucht man nur weil CSocket blockierende IO Calls verwendet. Da CAsyncSocket nicht-blockierende IO Calls verwendet braucht man auch kein OnMessagePending <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>Zu 1 - keine Ahnung, hat vielleicht technische Gründe. Oder dass MS angenommen hat dass man sowieso entweder alles blocking oder alles non-blocking macht.<br />
In anderen Libraries gibt es sehrwohl Klassen mit denen man beides machen kann.<br />
Anders gesagt: &quot;MS hat es eben so gemacht, warum auch immer&quot; <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/1399794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399794</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 08 Nov 2007 14:38:30 GMT</pubDate></item><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Sun, 11 Nov 2007 11:03:54 GMT]]></title><description><![CDATA[<blockquote>
<p>OnMessagePending braucht man nur weil CSocket blockierende IO Calls verwendet. Da CAsyncSocket nicht-blockierende IO Calls verwendet braucht man auch kein OnMessagePending</p>
</blockquote>
<p>Ok, Frage anders gestellt: Ich möchte eine <strong>synchrone Verbindung</strong> mit CSocket aufbauen und im Nachhinein die Funktion <strong>OnMessagePending() verwenden</strong>. Unmittelbar nach dem Verbindungsaufbau möchte ich aber <strong>überprüfen, ob beim Verbindungsaufbau Fehler aufgetreten sind.</strong> Wenn ja, dann soll es beispielsweise eine Fehlermeldung geben. Dazu bräuchte man dann doch OnConnect(), doch da diese Funktion in CSocket ja nicht aufgerufen wird, wie stelle ich das Ganze dann an..?</p>
<p>A-jage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401257</guid><dc:creator><![CDATA[a-jage]]></dc:creator><pubDate>Sun, 11 Nov 2007 11:03:54 GMT</pubDate></item><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Sun, 11 Nov 2007 13:55:10 GMT]]></title><description><![CDATA[<p>Ich habe nun den Vorschlag ausprobiert und meine Klasse von CAsynckSocket abgeleitet.</p>
<p>Der Eventhandler wird aber nur ausgeführt, wenn der ErrorCode gleich Null ist, also nur der Else-Teil:</p>
<pre><code>void CMessengerSocket::OnConnect(int nErrorCode)
{
	// TODO: Add your specialized code here and/or call the base class
	if(0 != nErrorCode)
	{	
		m_ConnectionFailed.LoadString(IDS_CONNECTION_FAILED);
		AfxMessageBox(m_ConnectionFailed);
	}
	else
	{
		//Call NewFrame() to create new mainframe
		theApp.NewFrame();
	}

	CAsyncSocket::OnConnect(nErrorCode);
}
</code></pre>
<p>Wenn ich z.B. den Verbindungsaufbau mit der Firewall verweigere, dann tut sich gar nichts...<br />
Warum..? Langsam werd ich hier verrückt.. -.-</p>
<p>A-jage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401326</guid><dc:creator><![CDATA[a-jage]]></dc:creator><pubDate>Sun, 11 Nov 2007 13:55:10 GMT</pubDate></item><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Sun, 11 Nov 2007 16:07:06 GMT]]></title><description><![CDATA[<p>Hast du auch lange genug gewartet? Firewalls schicken oft kein &quot;geht nicht&quot; zurück wenn man die Verbindung &quot;verbietet&quot; sondern blocken einfach die ausgehenden &quot;SYN&quot;. Das hat zur Folge dass das &quot;connect&quot; erst nach einem relativ langen Timeout fehlschlägt. Also warte mal 1-2 Minuten und guck ob dann immer noch nix kommt.</p>
<p>Oder nimm eine IP die sicher antwortet (z.B. 127.0.0.1) und einen Port der garantiert nicht existiert. Dann bekommst du sofort deinen Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401444</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 11 Nov 2007 16:07:06 GMT</pubDate></item><item><title><![CDATA[Reply to Eventhandler wird nicht ausgeführt. on Sun, 11 Nov 2007 17:24:10 GMT]]></title><description><![CDATA[<p>Zur Methode 1: Ich habe 5 Minuten lang gewartet, ohne dass sich was getan hat.</p>
<p>Zur Methode 2: 127.0.0.1 und 3999999, hat geklappt, doch habe ich dadurch die Gewissheit, dass es bei einem &quot;Ernstfall&quot; klappen wird?</p>
<p>A-jage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401504</guid><dc:creator><![CDATA[a-jage]]></dc:creator><pubDate>Sun, 11 Nov 2007 17:24:10 GMT</pubDate></item></channel></rss>