<?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[Thread und Zeiger auf C..Doc]]></title><description><![CDATA[<p>Dieser Beitrag könnte Themenverwandt zu einem anderen Problem von mir sein: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-167793.html" rel="nofollow">HIER</a></p>
<p>Ich habe eine Klasse die einen (Arbeits-)Thread (als Methode dieser Klasse) ausführt. Sie beinhaltet desweiteren einen Zeiger auf das CMyProgDoc-Objekt meines Programms. Von dieser Klasse existiert ein Objekt in meiner CMyProgDoc-Klasse.<br />
Im Thread wird nun eine Methode aus CMyProgDoc aufgerufen.</p>
<p>An dieser Stelle bricht der Debugger das Ausführen des Programms mit folgender Meldung ab:<br />
<em>Unhandled exception at 0x00549e52 in MyProg.exe: 0xC0000005: Access violation reading location 0x00000004.</em><br />
Und er zeigt mir die Funktion GetValueAt(void* key) der Klasse CMapPtrToPtr.</p>
<p>Gekürzte Codeauszüge:</p>
<pre><code class="language-cpp">class BlubbThread
{
   // ...
   CMyProgDoc *mParent;
   // ...
   void SetParent(CMyProgDoc *p)
   {
      mParent = p;
   }
   // ...
   static UINT Run(LPVOID pParam)  // der Thread
   {
      BlubbThread *OuterThis = (BlubbThread*)pParam;
      // ...
      OuterThis-&gt;mParent-&gt;FunktionXYZ();   // FEHLER: hier bricht die Ausführung ab
      // ...
   }
   // ...
};
</code></pre>
<pre><code class="language-cpp">class CMyProgDoc : public CDocument
{
   // ...
   BlubbThread mBlTh;
   // ...
   CMyProgDoc() // Konstruktor
   {
      mBlTh.SetParent(this);
   }
   // ...
   void FunktionXYZ()
   {
       // ...
   }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/167844/thread-und-zeiger-auf-c-doc</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 19:05:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/167844.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Dec 2006 14:55:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 15 Dec 2006 14:55:04 GMT]]></title><description><![CDATA[<p>Dieser Beitrag könnte Themenverwandt zu einem anderen Problem von mir sein: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-167793.html" rel="nofollow">HIER</a></p>
<p>Ich habe eine Klasse die einen (Arbeits-)Thread (als Methode dieser Klasse) ausführt. Sie beinhaltet desweiteren einen Zeiger auf das CMyProgDoc-Objekt meines Programms. Von dieser Klasse existiert ein Objekt in meiner CMyProgDoc-Klasse.<br />
Im Thread wird nun eine Methode aus CMyProgDoc aufgerufen.</p>
<p>An dieser Stelle bricht der Debugger das Ausführen des Programms mit folgender Meldung ab:<br />
<em>Unhandled exception at 0x00549e52 in MyProg.exe: 0xC0000005: Access violation reading location 0x00000004.</em><br />
Und er zeigt mir die Funktion GetValueAt(void* key) der Klasse CMapPtrToPtr.</p>
<p>Gekürzte Codeauszüge:</p>
<pre><code class="language-cpp">class BlubbThread
{
   // ...
   CMyProgDoc *mParent;
   // ...
   void SetParent(CMyProgDoc *p)
   {
      mParent = p;
   }
   // ...
   static UINT Run(LPVOID pParam)  // der Thread
   {
      BlubbThread *OuterThis = (BlubbThread*)pParam;
      // ...
      OuterThis-&gt;mParent-&gt;FunktionXYZ();   // FEHLER: hier bricht die Ausführung ab
      // ...
   }
   // ...
};
</code></pre>
<pre><code class="language-cpp">class CMyProgDoc : public CDocument
{
   // ...
   BlubbThread mBlTh;
   // ...
   CMyProgDoc() // Konstruktor
   {
      mBlTh.SetParent(this);
   }
   // ...
   void FunktionXYZ()
   {
       // ...
   }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1192516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192516</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Fri, 15 Dec 2006 14:55:04 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 15 Dec 2006 20:40:27 GMT]]></title><description><![CDATA[<p>Wo rufst Du denn Run auf? Übergibst Du dort etwas vom Typ BlubbThread*?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192699</guid><dc:creator><![CDATA[Turing]]></dc:creator><pubDate>Fri, 15 Dec 2006 20:40:27 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Sat, 16 Dec 2006 10:42:12 GMT]]></title><description><![CDATA[<p>In der Klasse BlubbThread gibt es folgende Methode:</p>
<pre><code class="language-cpp">void BlubbThread::StartThread()
{
	mThread = AfxBeginThread(BlubbThread::Run, this, THREAD_PRIORITY_BELOW_NORMAL, 0, CREATE_SUSPENDED, NULL);
	mThread-&gt;ResumeThread();
	// mThread ist ein Zeiger vom Typ CWinThread
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1192864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192864</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Sat, 16 Dec 2006 10:42:12 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Sat, 16 Dec 2006 12:33:06 GMT]]></title><description><![CDATA[<p>Kannst du eventuell einschränken, ob der Fehler in der Run() oder in der aufgerufenen Funktion auftritt?</p>
<p>zwei (oder drei) Möglichkeiten würden mir einfallen:</p>
<ol>
<li>Du verwendest die StartThread() Methode vom falschen Objekt aus.<br />
(Frage: Von wo aus wird der Thread angestoßen?</li>
<li>Du greifst in FunctionXYZ() auf dein Window direkt zu (das darf nur der Thread, der das Window angelegt hat).</li>
<li>Das Document hat sich ins Nirvana verabshiedet, bevor du den FunctionXYZ()-Aufruf erreicht hast (und mit ihm sein mBlTh)</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/1192925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192925</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Dec 2006 12:33:06 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Sat, 16 Dec 2006 14:26:18 GMT]]></title><description><![CDATA[<p>A.<br />
1. Es existiert nur ein Objekt.<br />
2. Öhm, ich weiß nicht so recht, vielleich t steht die Antwort bei B.<br />
3. Nein, die Funktion wird ausfgerufen.</p>
<p>B.<br />
Der Fehler tritt in der aufgerufenen Funktionen <em>[hier: FunctionXYZ()]</em> auf, sie wird also noch ausgeführt. Genauer an folgender Codezeile: <em>mSendingSocket.Create();</em><br />
Dabei ist mSendingSocket ein Objekt von einer von CAsyncSocket abgeleiteten Klasse.</p>
<p>Die aufgerufenen Funktion FunctionXYZ() ansich dürfte nicht fehlerhaft sein. Ich hatte sie schon zuvor verwendet und nicht umgebaut. Sie schein nur nicht korrekt zu funktionieren, wenn ich sie aus dem Thread heraus aufrufe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192964</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Sat, 16 Dec 2006 14:26:18 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Sat, 16 Dec 2006 15:10:00 GMT]]></title><description><![CDATA[<p>Dann ruf doch deine FunktionXYZ über SendMessage auf, dann kann nichts mehr schief gehen. Aus Thread auf Funktionen in einem anderen Thread(dein Dialog ist eine anderer Thread) zuzugreifen, bringt fast immer Probleme mit der Syncronisation der beiden Threads. Also lass ich das von Anfangan immer weg und erstelle mir eine UserMessage ala</p>
<pre><code class="language-cpp">#define FunktionXYZ (WM_USER+1)
</code></pre>
<p>und das auch meist gleich in der stdafx.h (wegen Faulheit wird eh überall includiert. geb dann den Thread das Handle auf den Dialog mit oder wenn ich den Zeiger vom Dialog mitgebe nutze ich daraus das Handle auf den Dialog.</p>
<pre><code class="language-cpp">SendMessage(DlgHandle,FunktionXYZ,0,0);
</code></pre>
<p>und im Dialog erstelle ich mir in der MessageMap</p>
<pre><code class="language-cpp">ON_MESSAGE(FunktionXYZ,OnFunktionXYZ)
</code></pre>
<p>und die Funktion dazu:</p>
<pre><code class="language-cpp">LRESULT CMyDialog::OnFunktionXYZ(WPARAM /*Type*/, LPARAM lparam)
{
    ....
}
</code></pre>
<p>Fertig und SendMessage kommt erst zurück wenn die Funktion ausgefürt wurde und Das Syncron zum Dlg-Thread. Und Übergabe und Rückgabewerte haste auch noch wenn man die braucht.</p>
<p>Ende</p>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192983</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Sat, 16 Dec 2006 15:10:00 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Sat, 16 Dec 2006 19:32:32 GMT]]></title><description><![CDATA[<p>Schonmal versucht den Socket als static zu deklarieren?</p>
<p>Wie bereits gesagt, so halte ich es auch generell für eine schlechte Idee aus einem Thread heraus Daten eines anderen Thread direkt zu ändern.<br />
Besser: Der Thread zeigt lediglich an, dass er etwas von einem anderen will und der andere erfüllt einem den Wunsch, wenn er an der Reihe ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1193089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1193089</guid><dc:creator><![CDATA[Turing]]></dc:creator><pubDate>Sat, 16 Dec 2006 19:32:32 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Sun, 17 Dec 2006 10:34:41 GMT]]></title><description><![CDATA[<p>Zwei Fragen hätte ich dazu:</p>
<p>Wie bekomme ich in der C..Doc das(/ein) Handle für mein Hauptfenster, welches ich dann an den Thread übergeben muss?</p>
<p>Wie soll ich es realisiseren, wenn ich eigentlich an die FunktionXYZ() Parameter übergeben möchte? Also sagen wir, ich möchte einen CString mitsenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1193287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1193287</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Sun, 17 Dec 2006 10:34:41 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Sun, 17 Dec 2006 11:39:51 GMT]]></title><description><![CDATA[<p>zu Doc-Handle:</p>
<p>In deinem View zB: hast du die Funktion GetDocument(), im Document direkt is das der this-Zeiger, und von beiden kommst du auf das handle des Windows in dem du -&gt;m_hWnd benutzt. also gar nicht so schwer. in deiner BlubbThread-Klasse hast du doch auch den Zeiger auf dein Doc.</p>
<p>zu übergabe von CString, Bei der SendMessage ist der vorletze ind der letzte Parameter jeweils WPARAM,LPARAM was einem word und einem long entspricht. Wenn du jetzt SendMessage benutzt, lannst du über den LPARAM einen Zeiger auf deinen lokalen CString übergeben, Da SendMessage so lande Wartet bis die Message abgearbeitet ist, brachst du dir in dem Fall auch keine gedanken darüber zu machen ob der CString noch Existiert wenn deine Funktion ausgeführt wird.</p>
<p>also</p>
<pre><code class="language-cpp">CString buffer(&quot;dieser Text soll übertragen werden&quot;);
SendMessage(DlgHandle,FunktionXYZ,0,&amp;buffer);
</code></pre>
<pre><code class="language-cpp">LRESULT CMyDialog::OnFunktionXYZ(WPARAM /*Type*/, LPARAM lparam)
{
    CString *buffer = static_cast&lt;CString*&gt;lparam; //hab das jetzt mit dem casten nicht ausprobiert ob das so stimmt :confused: 
    //buffer ist der Zeiger auf deinen CString
}
</code></pre>
<p>Sollte dir doch etwas weiter helfen, bevor das ein Roman wird.</p>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1193329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1193329</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Sun, 17 Dec 2006 11:39:51 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Sun, 17 Dec 2006 13:39:26 GMT]]></title><description><![CDATA[<p>CTecS schrieb:</p>
<blockquote>
<p>... und von beiden kommst du auf das handle des Windows in dem du -&gt;m_hWnd benutz ...</p>
</blockquote>
<p>Tja, bevor ich gefragt habe, hatte ich nach soetwas gesucht (GetHandle, hWnd, ..., m_hWnd) und nichts gefunden. Wenn ich versuche es so zu verwenden, meldet er mir: <em>error C2039: 'm_hWnd' : is not a member of 'CMyProgDoc'</em></p>
<p>//EDIT:<br />
Ach ich sehe gerade, m_hWnd ist Membervariable von C..View.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1193343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1193343</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Sun, 17 Dec 2006 13:39:26 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Sun, 17 Dec 2006 14:23:31 GMT]]></title><description><![CDATA[<p>Leider sind meine Probleme nicht am Ende.</p>
<p>Ich habe nun soweit versucht das Problem über SendMessage zu lösen. Ich wollte die Nachrichtenverarbeitung dabei eigentlich im C..Doc vornehmen, das gibt aber Probleme:</p>
<pre><code class="language-cpp">BEGIN_MESSAGE_MAP(CMyProgDoc, CDocument)
	ON_MESSAGE(LD_CLIENT_CONNECT, OnLDClientConnect)
END_MESSAGE_MAP()

// ...

LRESULT CMyProgDoc::OnLDClientConnect(WPARAM wparam, LPARAM lparam)
{
	AfxMessageBox(&quot;BLUBB&quot;);
}
</code></pre>
<p>Ich erhalte die Fehlermeldung ...<br />
<em>error C2440: 'static_cast' : cannot convert from 'LRESULT (__thiscall CMyProgDoc::</em> )(WPARAM,LPARAM)' to 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)'*</p>
<p>Heißt das nun, ich kann Nachrichten nur in von CWnd abgeleiteten Klassen (so wie C..View) durchführen?<br />
→ Wenn ja, wozu wird dann BEGIN_MESSAGE_MAP etc. überhaupt für C..Doc erzeugt?<br />
→ Wenn nein, was muss ich tun, damit es funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1193458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1193458</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Sun, 17 Dec 2006 14:23:31 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 22 Dec 2006 11:24:26 GMT]]></title><description><![CDATA[<p>CTecS schrieb:</p>
<blockquote>
<pre><code class="language-cpp">CString buffer(&quot;dieser Text soll übertragen werden&quot;);
SendMessage(DlgHandle,FunktionXYZ,0,&amp;buffer);
</code></pre>
<pre><code class="language-cpp">LRESULT CMyDialog::OnFunktionXYZ(WPARAM /*Type*/, LPARAM lparam)
{
    CString *buffer = static_cast&lt;CString*&gt;lparam; //hab das jetzt mit dem casten nicht ausprobiert ob das so stimmt :confused: 
    //buffer ist der Zeiger auf deinen CString
}
</code></pre>
<p>Gruß Matthias</p>
</blockquote>
<p>ich bekomm da folgenden fehler:<br />
Fehler 2 error C2061: Syntaxfehler: Bezeichner 'lparam'</p>
<p>was mach ich falsch? <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196574</guid><dc:creator><![CDATA[helmut a.]]></dc:creator><pubDate>Fri, 22 Dec 2006 11:24:26 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 22 Dec 2006 11:53:26 GMT]]></title><description><![CDATA[<p>Du hast den Kommentar hinter der Cast-Zeile übersehen (und richtig heißt der Aufruf auch <code>CString* buffer = static_cast&lt;CString*&gt;(lparam);</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196605</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 22 Dec 2006 11:53:26 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 05 Jan 2007 09:18:07 GMT]]></title><description><![CDATA[<p>hallo,<br />
dann bekomm ich den fehler:<br />
Fehler 4 error C2440: 'static_cast': 'LPARAM' kann nicht in 'CString *' konvertiert werden</p>
<p>oder muss ich das sonst noch irgendwo angeben das ich da nun ne string übergeb..</p>
<p>hab dieses WPARAM und LPARAM nich so ganz verstanden <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203332</guid><dc:creator><![CDATA[helmut a.]]></dc:creator><pubDate>Fri, 05 Jan 2007 09:18:07 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 05 Jan 2007 09:28:34 GMT]]></title><description><![CDATA[<p>Was genau hast du denn eigentlich per SendMessage() rausgeschickt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203340</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 05 Jan 2007 09:28:34 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 05 Jan 2007 10:00:27 GMT]]></title><description><![CDATA[<p>so wird es aufgerufen:</p>
<pre><code class="language-cpp">CString hmmm(&quot;zu übertragen&quot;);
SendMessage(hwnd_main,FunktionXYZ, (WPARAM)0 , (LPARAM)&amp;hmmm);
</code></pre>
<p>dann:</p>
<pre><code class="language-cpp">LRESULT CEmpfaengerDlg::OnFunktionBlubMessage(WPARAM wparam, LPARAM lparam)
{
CString* buffer = static_cast&lt;CString*&gt;(lparam);
...
</code></pre>
<p>einen int wert kann ich übertragen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203366</guid><dc:creator><![CDATA[helmut a.]]></dc:creator><pubDate>Fri, 05 Jan 2007 10:00:27 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 05 Jan 2007 10:49:55 GMT]]></title><description><![CDATA[<p>Du kannst keinen CString per SendMessage übertragen (zumindest nicht so wie Du es gemacht hast!).<br />
Das CString object ist schon längst wieder ungültig, wenn es der Empfänger bekommt.</p>
<p>Per SendMessage kannst Du eigentlich nur Zahlen übertragen (und natürlich den Spezialfall von Zahlen: nämlich Zeiger). Nur der Zeiger muss auf der Empfängerseite natürlich noch gültig sein!</p>
<p>Also z.B.:</p>
<pre><code class="language-cpp">LPTSTR szStr = _tcsdup(_T(&quot;mein String&quot;));
SendMessage(..... (LPWARAM) szStr);
</code></pre>
<p>und auf der Empfängerseite:</p>
<pre><code class="language-cpp">LRESULT CEmpfaengerDlg::OnFunktionBlubMessage(WPARAM wparam, LPARAM lparam)
{
  LPTSTR szStr = (LPTSTR) lparam;
  // ...
  free(szStr);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1203409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203409</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 05 Jan 2007 10:49:55 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 05 Jan 2007 12:05:05 GMT]]></title><description><![CDATA[<p>ui!</p>
<p>was ist denn das shcon wieder <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>also ein zeiger auf einen string..<br />
aber was unterscheidet den zeiger zu normalen?</p>
<p>ich schätz mal es hat was mit der gültigkeit zu tun, wenn du das schon ansprichst <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="😉"
    /><br />
oder wird das wo anders gespeichert?<br />
wo werden denn überhaupt meine variablen gespeichert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203479</guid><dc:creator><![CDATA[helmut a.]]></dc:creator><pubDate>Fri, 05 Jan 2007 12:05:05 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 05 Jan 2007 12:30:08 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5675">@Jochen</a> Kalmbach</p>
<p>Will Dir ja nur ungern wiedersprechen, aber das Senden eines CString´s über SendMessage ist durchaus möglich und eigentlich gefahrlos, da bei SendMessage auf die Rückkehr aus der MessageFunktion gewartet wird, da man ja einen Rückgabeparameter hat, also auch der lokale CString der auf dem Stack generiert wurde übergeben werden kann. Im Gegensatz zu PostMessage da sollte man so etwas nicht machen. Aber vielleicht kannst Du mich ja eines besseren belehren.</p>
<p>MFG Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203499</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Fri, 05 Jan 2007 12:30:08 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 05 Jan 2007 12:38:17 GMT]]></title><description><![CDATA[<p>CTecS schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5675">@Jochen</a> Kalmbach</p>
<p>Will Dir ja nur ungern wiedersprechen, aber das Senden eines CString´s über SendMessage ist durchaus möglich und eigentlich gefahrlos, da bei SendMessage auf die Rückkehr aus der MessageFunktion gewartet wird,</p>
</blockquote>
<p>Upps... da hab ich doch klatt was vergessen... danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203506</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 05 Jan 2007 12:38:17 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 05 Jan 2007 13:28:22 GMT]]></title><description><![CDATA[<p>und wie geht das dann? <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203562</guid><dc:creator><![CDATA[helmut a.]]></dc:creator><pubDate>Fri, 05 Jan 2007 13:28:22 GMT</pubDate></item><item><title><![CDATA[Reply to Thread und Zeiger auf C..Doc on Fri, 05 Jan 2007 14:29:35 GMT]]></title><description><![CDATA[<p>So in etwa: (ACHTUNG mein Casten muß nicht unbedingt stimmen)</p>
<pre><code class="language-cpp">CString buffer(&quot;dieser Text soll übertragen werden&quot;);
SendMessage(DlgHandle,FunktionXYZ,0,(LPARAM)&amp;buffer);
</code></pre>
<pre><code class="language-cpp">LRESULT CMyDialog::OnFunktionXYZ(WPARAM /*Type*/, LPARAM lparam)
{
    CString *buffer = (CString*)lparam; //hab das jetzt mit dem casten nicht ausprobiert ob das so stimmt  
    //buffer ist der Zeiger auf deinen CString

    if(!buffer) return 0L;//kein gültiger Zeiger
    ...//mach was
    return 0L;   
}
</code></pre>
<p>Hoffe das ich das jetzt richtig zusammen habe.</p>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203641</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Fri, 05 Jan 2007 14:29:35 GMT</pubDate></item></channel></rss>