<?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[CFileDialog und m_ofn.lpstrFilter]]></title><description><![CDATA[<p>Hallo @all,</p>
<p>ich hätte mal eine Frage zum DateiÖffnen-Dialog (CFileDialog).</p>
<p>Wenn ich einen Dialog mit beispielsweise &quot;CFileDialog DateiDialog&quot; erstelle und den Parameter</p>
<p>DateiDialog.m_ofn.lpstrFilter = &quot;ini-Dateien (<em>.ini)\0</em>.ini\0&quot;;</p>
<p>zuweise, funktioniert alles bestens.<br />
Nun möchte ich aber gerne den ersten Teil des Strings aus der StringTable in einen CString einlesen, das mache ich mit</p>
<p>CStringName.LoadString(IDS_NAME); // enthält ini-Dateien</p>
<p>Wenn ich nun folgende Zuweisung mache, funktioniert es nicht mehr und es werden kryptische Zeichen im ÖffnenDialog-Feld angezeigt:</p>
<p>DateiDialog.m_ofn.lpstrFilter = CStringName + &quot; (<em>.ini)\0</em>.ini\0&quot;;</p>
<p>Womit hängt das zusammen und wie kann ich das Problem lösen? <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>
<p>DateiDialog.m_ofn.lpstrFilter erwaretet einen LPCSTR.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170671/cfiledialog-und-m_ofn-lpstrfilter</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 03:44:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170671.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Jan 2007 12:58:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CFileDialog und m_ofn.lpstrFilter on Thu, 18 Jan 2007 12:58:18 GMT]]></title><description><![CDATA[<p>Hallo @all,</p>
<p>ich hätte mal eine Frage zum DateiÖffnen-Dialog (CFileDialog).</p>
<p>Wenn ich einen Dialog mit beispielsweise &quot;CFileDialog DateiDialog&quot; erstelle und den Parameter</p>
<p>DateiDialog.m_ofn.lpstrFilter = &quot;ini-Dateien (<em>.ini)\0</em>.ini\0&quot;;</p>
<p>zuweise, funktioniert alles bestens.<br />
Nun möchte ich aber gerne den ersten Teil des Strings aus der StringTable in einen CString einlesen, das mache ich mit</p>
<p>CStringName.LoadString(IDS_NAME); // enthält ini-Dateien</p>
<p>Wenn ich nun folgende Zuweisung mache, funktioniert es nicht mehr und es werden kryptische Zeichen im ÖffnenDialog-Feld angezeigt:</p>
<p>DateiDialog.m_ofn.lpstrFilter = CStringName + &quot; (<em>.ini)\0</em>.ini\0&quot;;</p>
<p>Womit hängt das zusammen und wie kann ich das Problem lösen? <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>
<p>DateiDialog.m_ofn.lpstrFilter erwaretet einen LPCSTR.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212000</guid><dc:creator><![CDATA[Dressman1981]]></dc:creator><pubDate>Thu, 18 Jan 2007 12:58:18 GMT</pubDate></item><item><title><![CDATA[Reply to CFileDialog und m_ofn.lpstrFilter on Thu, 18 Jan 2007 13:14:54 GMT]]></title><description><![CDATA[<p>Das könnte damit zusammenhängen, daß C-Strings nullterminiert sind (und auch von Systemfunktionen so behandelt werden). Dadurch schneidet der op+ alles ab dem ersten \0 in deinem String ab (und im Endeffekt hast du auch keinen doppelt nullterminierten String mehr, wie ihn CFileDialog benötigt). Eine Lösung wäre es, den Filter per Hand (memcpy() und co.) zusammenzubauen, alternativ könntest du den String erst zusammensetzen und dann die \0s einzufügen:</p>
<pre><code class="language-cpp">CString Filter = CStringName + &quot; (*.ini)|*.ini|&quot;;
Filter.Replace('|','\0');
DateiDialog.m_ofn.lpstrFilter = Filter;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1212013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212013</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 18 Jan 2007 13:14:54 GMT</pubDate></item><item><title><![CDATA[Reply to CFileDialog und m_ofn.lpstrFilter on Thu, 18 Jan 2007 13:15:33 GMT]]></title><description><![CDATA[<p>Am Ende des Filters sollten zwei '\0' stehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212014</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Thu, 18 Jan 2007 13:15:33 GMT</pubDate></item><item><title><![CDATA[Reply to CFileDialog und m_ofn.lpstrFilter on Thu, 18 Jan 2007 13:34:38 GMT]]></title><description><![CDATA[<p>Hallo ihr beiden und danke für die schnelle Antwort!</p>
<p>Ich habe es nach dem Beispiel von CStoll umgesetzt, funktioniert wunderbar. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1212027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212027</guid><dc:creator><![CDATA[Dressman1981]]></dc:creator><pubDate>Thu, 18 Jan 2007 13:34:38 GMT</pubDate></item><item><title><![CDATA[Reply to CFileDialog und m_ofn.lpstrFilter on Thu, 18 Jan 2007 13:36:18 GMT]]></title><description><![CDATA[<p>Airdamn schrieb:</p>
<blockquote>
<p>Am Ende des Filters sollten zwei '\0' stehen...</p>
</blockquote>
<p>Tun sie doch <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="😉"
    /> (der zweite \0 wird vom Compiler automatisch an das String-Literal angehängt)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212029</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 18 Jan 2007 13:36:18 GMT</pubDate></item><item><title><![CDATA[Reply to CFileDialog und m_ofn.lpstrFilter on Thu, 18 Jan 2007 13:38:10 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Airdamn schrieb:</p>
<blockquote>
<p>Am Ende des Filters sollten zwei '\0' stehen...</p>
</blockquote>
<p>Tun sie doch <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="😉"
    /> (der zweite \0 wird vom Compiler automatisch an das String-Literal angehängt)</p>
</blockquote>
<p>Ich hab zu lange zum antworten gebraucht. Hab nicht gesehen, dass Du schon geantwortet hast.<br />
Das ging also eigentlich an Dressman <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1212031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212031</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Thu, 18 Jan 2007 13:38:10 GMT</pubDate></item></channel></rss>