<?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[SHBrowseForFolder - komisches Verhalten]]></title><description><![CDATA[<p>Hab mir ne Funktion geschrieben um vom Benutzer einen Ordner zu erfragen:</p>
<pre><code class="language-cpp">bool GetFolderFromUserDlg(HWND hwnd, TCHAR *pszTitle, TCHAR *pszBuf)
{
	TCHAR szTemp[MAX_PATH];

	BROWSEINFO BI;
	BI.hwndOwner		= hwnd;
	BI.pidlRoot			= 0;
	BI.pszDisplayName	= _T(&quot;&quot;);
	BI.lpszTitle		= pszTitle;
	BI.ulFlags			= 0;
	BI.lpfn				= 0;

	LPITEMIDLIST pidl;
	pidl = SHBrowseForFolder(&amp;BI);
	if(!pidl)
		return false;

	BOOL bRes;

	bRes = SHGetPathFromIDList(pidl, szTemp);
	IMalloc* pMalloc;
	if(SHGetMalloc(&amp;pMalloc) == S_OK)
	{
		pMalloc-&gt;Free((void*)pidl);
		pMalloc-&gt;Release();
	}
	if(!bRes)
	{
		return false;
	}

	lstrcpy(pszBuf, szTemp);
	return true;
}
</code></pre>
<p>Das lustige:<br />
Wenn ich danach ein MessageBox(0, &quot;&quot;, &quot;&quot;, 0); aufrufe, erhalte ich den Ordnernamen angezeigt. Was lief hier falsch?<br />
Mitunter stürzt das Programm auch danach ab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> .<br />
Ich kann aber keinen Fehler finden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> .</p>
<p>Danke im Voraus,<br />
Black Shadow</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176303/shbrowseforfolder-komisches-verhalten</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 00:29:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176303.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Mar 2007 19:51:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SHBrowseForFolder - komisches Verhalten on Mon, 19 Mar 2007 19:51:19 GMT]]></title><description><![CDATA[<p>Hab mir ne Funktion geschrieben um vom Benutzer einen Ordner zu erfragen:</p>
<pre><code class="language-cpp">bool GetFolderFromUserDlg(HWND hwnd, TCHAR *pszTitle, TCHAR *pszBuf)
{
	TCHAR szTemp[MAX_PATH];

	BROWSEINFO BI;
	BI.hwndOwner		= hwnd;
	BI.pidlRoot			= 0;
	BI.pszDisplayName	= _T(&quot;&quot;);
	BI.lpszTitle		= pszTitle;
	BI.ulFlags			= 0;
	BI.lpfn				= 0;

	LPITEMIDLIST pidl;
	pidl = SHBrowseForFolder(&amp;BI);
	if(!pidl)
		return false;

	BOOL bRes;

	bRes = SHGetPathFromIDList(pidl, szTemp);
	IMalloc* pMalloc;
	if(SHGetMalloc(&amp;pMalloc) == S_OK)
	{
		pMalloc-&gt;Free((void*)pidl);
		pMalloc-&gt;Release();
	}
	if(!bRes)
	{
		return false;
	}

	lstrcpy(pszBuf, szTemp);
	return true;
}
</code></pre>
<p>Das lustige:<br />
Wenn ich danach ein MessageBox(0, &quot;&quot;, &quot;&quot;, 0); aufrufe, erhalte ich den Ordnernamen angezeigt. Was lief hier falsch?<br />
Mitunter stürzt das Programm auch danach ab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> .<br />
Ich kann aber keinen Fehler finden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> .</p>
<p>Danke im Voraus,<br />
Black Shadow</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1248732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1248732</guid><dc:creator><![CDATA[Black Shadow]]></dc:creator><pubDate>Mon, 19 Mar 2007 19:51:19 GMT</pubDate></item><item><title><![CDATA[Reply to SHBrowseForFolder - komisches Verhalten on Mon, 19 Mar 2007 23:06:19 GMT]]></title><description><![CDATA[<p>Member &quot;BI.pszDisplayName&quot; hat einen verwirrenden Namen. <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 />
Dort kommt der Zeiger auf ein Puffer rein, in dem dann der Verzeichnisname reinkommt, den der User ausgewählt hat.<br />
So müsste es klappen :</p>
<pre><code class="language-cpp">...
// BI.pszDisplayName    = _T(&quot;&quot;);
BI.pszDisplayName    = pszBuf;
...
</code></pre>
<p>Der Kompiler hat die Adressen der leeren Strings von _T(&quot;&quot;) und denen der MessageBox hintereinander gelegt.<br />
Darum hat der Aufruf von &quot;SHBrowseForFolder ()&quot; die leeren Strings der MessageBox überschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1248827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1248827</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 19 Mar 2007 23:06:19 GMT</pubDate></item><item><title><![CDATA[Reply to SHBrowseForFolder - komisches Verhalten on Mon, 19 Mar 2007 23:11:21 GMT]]></title><description><![CDATA[<p><a href="http://www.winapi.net/index.php?inhalt=s40" rel="nofollow">http://www.winapi.net/index.php?inhalt=s40</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1248829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1248829</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Mon, 19 Mar 2007 23:11:21 GMT</pubDate></item><item><title><![CDATA[Reply to SHBrowseForFolder - komisches Verhalten on Tue, 20 Mar 2007 08:24:38 GMT]]></title><description><![CDATA[<p>Danke ihr zwei, so müsste es nun klappen <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>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1248912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1248912</guid><dc:creator><![CDATA[Black Shadow]]></dc:creator><pubDate>Tue, 20 Mar 2007 08:24:38 GMT</pubDate></item></channel></rss>