<?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[GetSaveFileName]]></title><description><![CDATA[<p>Hallöchen. bin hier grad über ne Funktion gestolpert (und böse hingefallen). Es geht um GetSaveFileName. und damit natürlich auch um OPENFILENAME. ich hab irgendwie nicht so wirklich Überblick über die Struktur <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> . Um die DialogBox aufrufen zu können, brauch ich doch nicht mehr als den Inhalt davon auf Null setzen (außer lStructSize) und die adresse an GetSaveFileName zu übergeben, oder?. nach dem aufruf scheint die Funktion erfolgreich ausgeführt worden zu sein (ich bekomm auch die DlgBox zu sehen und wähl die Datei aus, in welche ich speichern soll. Die Funktion gibt TRUE zurück) allerdings ist das lpstrFile mit 0x00000000 ein ungültiger Pointer. mus sman irgendwie vor dem Aufruf Speicher dafür reservieren? habs mit malloc und 1024 bytes versucht. daraufhin schlug die funktion fehl und ich bekomm FNERR_BUFFERTOOSMALL von der freundlichen Funktion CommDlgExtendedError() als return zurück. versuch ich ein TCHAR Array zu erzeugen und<br />
openFile.lpstrFile = Array;<br />
kommt dasselbe. buffer too small. Ich hab dann versucht ein paar andere meber von openFile zu spezifizieren, hat aber irgendwie nichts gebracht. kann mal jemand so frendlich sein, mir mein Fehler zu erklären? ^^. Hier der Code:</p>
<pre><code class="language-cpp">void OnFileSave(HWND hWnd)
{
	TCHAR filename[512];
	OPENFILENAME openFile;
	TCHAR szPath[MAX_PATH];
	static BOOL bFirstSave = TRUE;

	ZeroMemory( &amp;openFile, sizeof(OPENFILENAME) );
	openFile.lStructSize = sizeof(OPENFILENAME);
	openFile.hwndOwner = hWnd;
	openFile.lpstrFilter = TEXT(&quot;All Files\0*.*\0\0&quot;);
	openFile.lpstrFile = filename;
	ZeroMemory(openFile.lpstrFile, sizeof(TCHAR));
	if ( TRUE == bFirstSave )
	{
		if ( SUCCEEDED( SHGetFolderPath( NULL, CSIDL_PERSONAL , 
										NULL, 0, szPath ) ) )
		{

		openFile.lpstrInitialDir = szPath;
		}
	}

	if ( GetSaveFileName( &amp;openFile ) == TRUE )
	{
		dlgtxt.SaveFile(openFile.lpstrFile);

		bFirstSave = FALSE;
	}
	else
	{
		if(CommDlgExtendedError() == FNERR_BUFFERTOOSMALL)
			MessageBox(NULL, TEXT(&quot;VERGISS ES. LOL&quot;), TEXT(&quot;NÖ&quot;), MB_OK);
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/187817/getsavefilename</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Jul 2026 00:06:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187817.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Jul 2007 12:02:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to GetSaveFileName on Tue, 24 Jul 2007 12:02:53 GMT]]></title><description><![CDATA[<p>Hallöchen. bin hier grad über ne Funktion gestolpert (und böse hingefallen). Es geht um GetSaveFileName. und damit natürlich auch um OPENFILENAME. ich hab irgendwie nicht so wirklich Überblick über die Struktur <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> . Um die DialogBox aufrufen zu können, brauch ich doch nicht mehr als den Inhalt davon auf Null setzen (außer lStructSize) und die adresse an GetSaveFileName zu übergeben, oder?. nach dem aufruf scheint die Funktion erfolgreich ausgeführt worden zu sein (ich bekomm auch die DlgBox zu sehen und wähl die Datei aus, in welche ich speichern soll. Die Funktion gibt TRUE zurück) allerdings ist das lpstrFile mit 0x00000000 ein ungültiger Pointer. mus sman irgendwie vor dem Aufruf Speicher dafür reservieren? habs mit malloc und 1024 bytes versucht. daraufhin schlug die funktion fehl und ich bekomm FNERR_BUFFERTOOSMALL von der freundlichen Funktion CommDlgExtendedError() als return zurück. versuch ich ein TCHAR Array zu erzeugen und<br />
openFile.lpstrFile = Array;<br />
kommt dasselbe. buffer too small. Ich hab dann versucht ein paar andere meber von openFile zu spezifizieren, hat aber irgendwie nichts gebracht. kann mal jemand so frendlich sein, mir mein Fehler zu erklären? ^^. Hier der Code:</p>
<pre><code class="language-cpp">void OnFileSave(HWND hWnd)
{
	TCHAR filename[512];
	OPENFILENAME openFile;
	TCHAR szPath[MAX_PATH];
	static BOOL bFirstSave = TRUE;

	ZeroMemory( &amp;openFile, sizeof(OPENFILENAME) );
	openFile.lStructSize = sizeof(OPENFILENAME);
	openFile.hwndOwner = hWnd;
	openFile.lpstrFilter = TEXT(&quot;All Files\0*.*\0\0&quot;);
	openFile.lpstrFile = filename;
	ZeroMemory(openFile.lpstrFile, sizeof(TCHAR));
	if ( TRUE == bFirstSave )
	{
		if ( SUCCEEDED( SHGetFolderPath( NULL, CSIDL_PERSONAL , 
										NULL, 0, szPath ) ) )
		{

		openFile.lpstrInitialDir = szPath;
		}
	}

	if ( GetSaveFileName( &amp;openFile ) == TRUE )
	{
		dlgtxt.SaveFile(openFile.lpstrFile);

		bFirstSave = FALSE;
	}
	else
	{
		if(CommDlgExtendedError() == FNERR_BUFFERTOOSMALL)
			MessageBox(NULL, TEXT(&quot;VERGISS ES. LOL&quot;), TEXT(&quot;NÖ&quot;), MB_OK);
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1331478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331478</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Tue, 24 Jul 2007 12:02:53 GMT</pubDate></item><item><title><![CDATA[Reply to GetSaveFileName on Tue, 24 Jul 2007 13:11:49 GMT]]></title><description><![CDATA[<p>Es fehlt</p>
<pre><code class="language-cpp">openFile.nMaxFile = MAX_PATH
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1331548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331548</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 24 Jul 2007 13:11:49 GMT</pubDate></item><item><title><![CDATA[Reply to GetSaveFileName on Tue, 24 Jul 2007 13:15:40 GMT]]></title><description><![CDATA[<p>danke sehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> ...</p>
<p>schade das ich am samstag kein boxsack zum geburtstag bekommen hab. könnte ich öfters mal brauchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331553</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Tue, 24 Jul 2007 13:15:40 GMT</pubDate></item></channel></rss>