<?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[Unterschied im Aufruf von &amp;quot;MyFunction() und &amp;quot;::MyFunction()&amp;quot;]]></title><description><![CDATA[<p>Ich bin jetzt schon des öfteren auf diese 2 Doppelpunte vor Funktionsaufrufen gestoßen, hab davon aber noch nie etwas gehört.<br />
Ich meine jetzt nicht den Aufruf von Funktionen von Elternklassen wie z.B.</p>
<pre><code>CDialog::OnOk();  // &lt;-- nicht sowas
</code></pre>
<p>Und der Aufruf von Funktionen anderer namespaces wie z.B. das hier:</p>
<pre><code>using namespace std;
int var;
namespace myspace
{
  int var = 5;
}
main()
{
  var = 1;
  int i = var + myspace::var; // &lt;-- nicht sowas
}
</code></pre>
<p>Nein, plötzlich taucht sowas hier auf. Oft in Verbindung mit Theads (Zusammenhang??).</p>
<p>Schnipsel:</p>
<pre><code>struct CMyPara
{
  HWND hwnd;
}

main()
{
//[...]
  AfxBeginThread(Funktionxyz, (void*)&amp;m_Para, THREAD_PRIORITY_NORMAL);
//[...]
}

UINT __cdecl Funktionxyz(LPVOID pPara)
{
  CMyPara pMyPara = (FEReadTagsThreadPara*)pPara;
  ::PostMessage(pMyPara-&gt;hwnd, WM_ERROR, 12345, 0); // &lt;---- sondern sowas
}
</code></pre>
<p>Oder das hier hab ich auch gefunden:</p>
<pre><code>CWinThread*
pThread = AfxBeginThread(Funktionxyz, this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
::DuplicateHandle(GetCurrentProcess(), pThread-&gt;m_hThread, GetCurrentProcess(), &amp;hThread, 0, FALSE, DUPLICATE_SAME_ACCESS); // &lt;---- sondern sowas
pThread-&gt;ResumeThread();
</code></pre>
<p>Wo ist der Unterschied zum normalen Funktionsaufruf?<br />
Und wenn es doch etwas mit namespaces zu tun hat, was macht es für einen Sinn eine Funktion im eigenen namespace aufzurufen? (Wo denn sonst?)</p>
<p>Lasst mich nicht dumm sterben,<br />
Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164233/unterschied-im-aufruf-von-quot-myfunction-und-quot-myfunction-quot</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 18:04:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164233.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Nov 2006 13:18:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unterschied im Aufruf von &amp;quot;MyFunction() und &amp;quot;::MyFunction()&amp;quot; on Mon, 06 Nov 2006 13:18:00 GMT]]></title><description><![CDATA[<p>Ich bin jetzt schon des öfteren auf diese 2 Doppelpunte vor Funktionsaufrufen gestoßen, hab davon aber noch nie etwas gehört.<br />
Ich meine jetzt nicht den Aufruf von Funktionen von Elternklassen wie z.B.</p>
<pre><code>CDialog::OnOk();  // &lt;-- nicht sowas
</code></pre>
<p>Und der Aufruf von Funktionen anderer namespaces wie z.B. das hier:</p>
<pre><code>using namespace std;
int var;
namespace myspace
{
  int var = 5;
}
main()
{
  var = 1;
  int i = var + myspace::var; // &lt;-- nicht sowas
}
</code></pre>
<p>Nein, plötzlich taucht sowas hier auf. Oft in Verbindung mit Theads (Zusammenhang??).</p>
<p>Schnipsel:</p>
<pre><code>struct CMyPara
{
  HWND hwnd;
}

main()
{
//[...]
  AfxBeginThread(Funktionxyz, (void*)&amp;m_Para, THREAD_PRIORITY_NORMAL);
//[...]
}

UINT __cdecl Funktionxyz(LPVOID pPara)
{
  CMyPara pMyPara = (FEReadTagsThreadPara*)pPara;
  ::PostMessage(pMyPara-&gt;hwnd, WM_ERROR, 12345, 0); // &lt;---- sondern sowas
}
</code></pre>
<p>Oder das hier hab ich auch gefunden:</p>
<pre><code>CWinThread*
pThread = AfxBeginThread(Funktionxyz, this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
::DuplicateHandle(GetCurrentProcess(), pThread-&gt;m_hThread, GetCurrentProcess(), &amp;hThread, 0, FALSE, DUPLICATE_SAME_ACCESS); // &lt;---- sondern sowas
pThread-&gt;ResumeThread();
</code></pre>
<p>Wo ist der Unterschied zum normalen Funktionsaufruf?<br />
Und wenn es doch etwas mit namespaces zu tun hat, was macht es für einen Sinn eine Funktion im eigenen namespace aufzurufen? (Wo denn sonst?)</p>
<p>Lasst mich nicht dumm sterben,<br />
Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169605</guid><dc:creator><![CDATA[Grittz]]></dc:creator><pubDate>Mon, 06 Nov 2006 13:18:00 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied im Aufruf von &amp;quot;MyFunction() und &amp;quot;::MyFunction()&amp;quot; on Mon, 06 Nov 2006 13:32:38 GMT]]></title><description><![CDATA[<p>Die Doppelpunkte dienen zur Auflösung von Namensräumen, das hast du schon richtig erkannt. Und wenn du keinen Namen davor angibst, beziehst du dich auf den globalen Namensraum. Damit kannst du die globalen Funktionen von ihren Methoden-Entsprechungen unterscheiden.<br />
Z.B. ruft <code>PostMessage(...)</code> die Methode der CWnd-Klasse auf und <code>::PostMessage(...)</code> die gleichnamige Funktion der WinAPI.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169630</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 06 Nov 2006 13:32:38 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied im Aufruf von &amp;quot;MyFunction() und &amp;quot;::MyFunction()&amp;quot; on Mon, 06 Nov 2006 13:37:32 GMT]]></title><description><![CDATA[<p>Ah ok. Danke. Ich hab mich nämlich auch gewundert warum es egal ist, wenn ich die Doppelpunkte entferne. Die Message landet wohl bei CWnd::PostMessage() als auch bei der WinAPI PostMessage() an der gleichen Stelle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169637</guid><dc:creator><![CDATA[Grittz]]></dc:creator><pubDate>Mon, 06 Nov 2006 13:37:32 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied im Aufruf von &amp;quot;MyFunction() und &amp;quot;::MyFunction()&amp;quot; on Mon, 06 Nov 2006 13:52:42 GMT]]></title><description><![CDATA[<p>Der Unterschied ist in diesem Beispiel wohl der, wie du das Ziel festlegst. CWnd::PostMessage() gibt die Nachricht an das Fenster, das mit this verbunden ist, weiter (welches das ist, hängt davon ab, wo du dich befindest). ::PostMessage() bekommt als ersten Parameter ein Window-Handle und schickt die Nachricht an dieses Fenster.</p>
<p>(Aber wenn du dich in einer Klasse bewegst, die nicht von CWnd abgeleitet ist (bzw. ein eigenes PostMessage() hat), sind tatsächlich beide Angaben identisch)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169655</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 06 Nov 2006 13:52:42 GMT</pubDate></item></channel></rss>