<?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[Probleme mit der Funktion GetDlgItemText]]></title><description><![CDATA[<p>Hallo, ich bin relativ in der WinApi Programmierung bzw. allgemein in der Programmierung.<br />
Ich habe auch ein Problem mit VisualC++ 2005 und der Fkt. GetDlgItemText. Leider hat mir der eine Beitrag dazu nicht helfen können.<br />
Also ich versuche nen Text, der in einer DialogBox eingegeben wird, mittels GetDlgItemText zu speichern. Leider klappt das nicht. Hier mal nen Code Ausschnitt:</p>
<pre><code class="language-cpp">if(!GetDlgItemText(hPoDlg, IDC_PORT, szNameOfPort, lstrlen(szNameOfPort)))
    {
        dwError = GetLastError ();
    }            
    EndDialog(hPoDlg, LOWORD(wParam)); //usw...
</code></pre>
<p>Auf szNameOfPort soll die Eingabe hinterlegt werden. Ist global als LPWSTR deklariert und auch initialisiert.<br />
Was mach ich da falsch, wenn ich szNameOfPort auslesen will bsplw. mit</p>
<pre><code class="language-cpp">TextOut(hdc, 20, 20, szNameOfPort, lstrlen(szNameOfPort));
</code></pre>
<p>(hdc usw.) sind alle korrekt registriert, habs mit nem verdefinierten string ausgetestet.</p>
<p>Hab das Gefühl, dass die Übergabe an den Pointer net richtig funzt oder wenn doch dass ich dann den Pointer net richtig aufrufe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/157132/probleme-mit-der-funktion-getdlgitemtext</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 17:31:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/157132.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Aug 2006 12:40:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit der Funktion GetDlgItemText on Wed, 23 Aug 2006 12:40:12 GMT]]></title><description><![CDATA[<p>Hallo, ich bin relativ in der WinApi Programmierung bzw. allgemein in der Programmierung.<br />
Ich habe auch ein Problem mit VisualC++ 2005 und der Fkt. GetDlgItemText. Leider hat mir der eine Beitrag dazu nicht helfen können.<br />
Also ich versuche nen Text, der in einer DialogBox eingegeben wird, mittels GetDlgItemText zu speichern. Leider klappt das nicht. Hier mal nen Code Ausschnitt:</p>
<pre><code class="language-cpp">if(!GetDlgItemText(hPoDlg, IDC_PORT, szNameOfPort, lstrlen(szNameOfPort)))
    {
        dwError = GetLastError ();
    }            
    EndDialog(hPoDlg, LOWORD(wParam)); //usw...
</code></pre>
<p>Auf szNameOfPort soll die Eingabe hinterlegt werden. Ist global als LPWSTR deklariert und auch initialisiert.<br />
Was mach ich da falsch, wenn ich szNameOfPort auslesen will bsplw. mit</p>
<pre><code class="language-cpp">TextOut(hdc, 20, 20, szNameOfPort, lstrlen(szNameOfPort));
</code></pre>
<p>(hdc usw.) sind alle korrekt registriert, habs mit nem verdefinierten string ausgetestet.</p>
<p>Hab das Gefühl, dass die Übergabe an den Pointer net richtig funzt oder wenn doch dass ich dann den Pointer net richtig aufrufe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122836</guid><dc:creator><![CDATA[pibl]]></dc:creator><pubDate>Wed, 23 Aug 2006 12:40:12 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der Funktion GetDlgItemText on Wed, 23 Aug 2006 12:45:00 GMT]]></title><description><![CDATA[<p>pibl schrieb:</p>
<blockquote>
<pre><code class="language-cpp">if( !GetDlgItemText( hPoDlg, IDC_PORT, szNameOfPort, lstrlen( szNameOfPort ) ) ) {

        // ...
    }
</code></pre>
</blockquote>
<p>Der letzte Parameter sollte die Größe des zur Verfügung stehenden Speicherbereiches angeben, nicht die Länge der Zeichenkette, die dort gerade zufällig steht.</p>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122841</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122841</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 23 Aug 2006 12:45:00 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der Funktion GetDlgItemText on Wed, 23 Aug 2006 12:47:15 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if(!GetDlgItemText(hPoDlg, IDC_PORT, szNameOfPort, lstrlen(szNameOfPort)))
</code></pre>
<p>lstrlen(szNameOfPort) ersetzen durch die Größe des Arrays...z.B.</p>
<pre><code class="language-cpp">TCHAR szNameOfPort[100];
if(!GetDlgItemText(hPoDlg, IDC_PORT, szNameOfPort, 100))
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1122844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122844</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Wed, 23 Aug 2006 12:47:15 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der Funktion GetDlgItemText on Wed, 23 Aug 2006 12:53:04 GMT]]></title><description><![CDATA[<p>Airdamn schrieb:</p>
<blockquote>
<pre><code class="language-cpp">TCHAR szNameOfPort[100];
if( !GetDlgItemText( hPoDlg, IDC_PORT, szNameOfPort, 100 ) )
</code></pre>
</blockquote>
<p>besser</p>
<pre><code class="language-cpp">GetDlgItemText( hPoDlg, IDC_PORT, szNameOfPort, sizeof( szNameOfPort ) / sizeof( TCHAR ) );
</code></pre>
<p>um auf der sicheren Seite zu sein, falls sich die Größe von <em>szNameOfPort</em> 'mal ändert.</p>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122848</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 23 Aug 2006 12:53:04 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der Funktion GetDlgItemText on Wed, 23 Aug 2006 13:01:35 GMT]]></title><description><![CDATA[<p>Ich hab das eben mal geändert (danke für den Hinweis - gab da mehrere Version im Netz).<br />
Aber leider liegt es nicht daran. Es ist als ob, einfach nichts auf dem dritten Parameter abgelgt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122851</guid><dc:creator><![CDATA[pibl]]></dc:creator><pubDate>Wed, 23 Aug 2006 13:01:35 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der Funktion GetDlgItemText on Wed, 23 Aug 2006 13:12:26 GMT]]></title><description><![CDATA[<p>Zeig bitte code.</p>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122856</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 23 Aug 2006 13:12:26 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der Funktion GetDlgItemText on Wed, 23 Aug 2006 13:33:55 GMT]]></title><description><![CDATA[<p>Zeig mal die Definition (bzw Deklaration) und die Initialisierung von szNameOfPort.</p>
<p>BTW: Was steht denn in dem C-String szNameOfPort nach dem Aufruf von GetDlgItemText (-&gt; MessageBox(...))?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122877</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 23 Aug 2006 13:33:55 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der Funktion GetDlgItemText on Wed, 23 Aug 2006 13:47:02 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>Zeig bitte code.</p>
<p>Greetz, Swordfish</p>
</blockquote>
<p>Deklaration von szNameOfPort:</p>
<pre><code class="language-cpp">LPWSTR          szNameOfPort;
</code></pre>
<p>Wie gesagt ich benutze VisualC++ 2005 Express. Da wird man von Microsoft gehalten, möglichst WideString zu benutzen. Alle Funktionen akzeptieren dann normalerweise nur WideStrings ausser man gibt ihnen direkt vor, dass Ansi benutzt werden soll.</p>
<p>szNameOfPort soll dann nach der Eingabe für den User mittels TextOut auf dem Bildschirm angezeigt werden und dann an die Funktion CreateFile() übergeben werden. In beiden Fällen klappt die Übergabe aber nicht. Wenn ich z.B. den WideString initialisiere etwa so:</p>
<pre><code class="language-cpp">LPWSTR          szNameOfPort = TEXT(&quot;COM1&quot;);
</code></pre>
<p>Dann übernimmt er den initialisierten Text &quot;COM1&quot;. Aber ich will ja den Port auswählen können und nicht festlegen.</p>
<p>Die Eingabe mit GetDlgItemInt klappt übrigens problemlos. Deswegen vermute ich meinen Fehler bei der Übergabe an den Pointer.</p>
<p>Hier mal der vollständige Auszug aus der DialogBox:</p>
<pre><code class="language-cpp">INT_PTR CALLBACK EditPortBox (HWND hPoDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
        SetDlgItemText (hPoDlg, IDC_PORT, szNameOfPort);
        break;
    case WM_COMMAND:
        switch (LOWORD(wParam))
        {
        case IDOK:
            if(!GetDlgItemText(hPoDlg, IDC_PORT, szNameOfPort, sizeof(szNameOfPort)/sizeof(TCHAR)))
            {
                dwError = GetLastError ();
            }            
            EndDialog(hPoDlg, LOWORD(wParam));
            break;
        case IDCANCEL:
            EndDialog(hPoDlg, LOWORD(wParam));
            break;
		}
        return (INT_PTR)TRUE;
		break;
    }
    return (INT_PTR)FALSE;
}
</code></pre>
<p>Wie gesagt die Box funktioniert, bloss die Eingabe halt nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122887</guid><dc:creator><![CDATA[pibl]]></dc:creator><pubDate>Wed, 23 Aug 2006 13:47:02 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der Funktion GetDlgItemText on Wed, 23 Aug 2006 14:01:57 GMT]]></title><description><![CDATA[<p>mahc ma anstatt<br />
LPWSTR szNameOfPart;</p>
<p>wchar szNameOfPart[256];</p>
<p>deine version allokiert keinen soeicher sondern erzeugt einfach einen zeiger der irgendwohin zeigt und ncih dahin, wo man wirklich was schreiben darf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122896</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Wed, 23 Aug 2006 14:01:57 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der Funktion GetDlgItemText on Wed, 23 Aug 2006 14:13:25 GMT]]></title><description><![CDATA[<p>Maxi schrieb:</p>
<blockquote>
<p>mahc ma anstatt<br />
LPWSTR szNameOfPart;</p>
<p>wchar szNameOfPart[256];</p>
<p>deine version allokiert keinen soeicher sondern erzeugt einfach einen zeiger der irgendwohin zeigt und ncih dahin, wo man wirklich was schreiben darf.</p>
</blockquote>
<p>Muy Grande!<br />
Das funktioniert so wunderbar. Danke sehr!<br />
Grüsse Pibl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122904</guid><dc:creator><![CDATA[pibl]]></dc:creator><pubDate>Wed, 23 Aug 2006 14:13:25 GMT</pubDate></item></channel></rss>