<?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[Verzeichnisproblem]]></title><description><![CDATA[<p>Hallo, ich habe ein Programm geschrieben das sowohl 'fixe' Daten aus einem File ausliest, als auch dem Anwender die Möglichkeit gibt per FileBox Dateien zu öffnen.<br />
Nun hab ich folgendes Problem bemerkt:<br />
Wenn man als erstes Dateien aufruft und später auf die 'fixen' Datensätze zugreifen will (fix bedeutet, der user kann den Pfad zum Datensatz in einem Textfile im Programmverzeichnis selbst anlegen) stimmt das Verzeichnis nicht mehr und die Dateien werden nicht geöffnet, da dass CurrentDirectory sich verändert hat. Mein erster Lösungsweg war, bei Aufruf des Programms mit</p>
<pre><code>[cpp] GetCurrentDirectory(MAX_PATH, CurrentDir);[/cpp]
</code></pre>
<p>den Pfad zu speichern und beim Aufruf der fixen Datensätze zu verwenden.<br />
Soweit so gut. Allerdings hab ich ein weiteres Manko entdeckt und zwar, wenn das Programm von einem Link vom Desktop aus gestartet wird, der per default(=senden an--&gt;Desktop(verknüpfung erstellen)) erstellt wurde, ist das zu Anfang abgefragte Directory natürlich &quot;C:/Windows/Desktop&quot; und die Daten werden wieder nicht gefunden. Wenn ich den Link entsprechend abändere (ausführen in Prg-Verzeichnis) geht alles wieder, nur hab ich ja keinen Einfluß darauf wie ein Anwender einen Link erstellt. Was schlagt ihr also vor? Installationsroutine mit Link auf Desktop find ich nicht so toll. Gibt es eine Möglichkeit das &quot;echte&quot; Programmverzeichnis zu ermitteln? Mit</p>
<pre><code>[cpp]GetModuleFileName(hInstance, szFileName, MAX_PATH)
</code></pre>
<p>[/cpp] könnt ich zwar durch überprüfen und abänderen des Strings (bsp. szFileName - programm.exe = Programmpfad) jederzeit zu dem korrekten Programmpfad kommen, frag mich aber ob es nicht noch eine bessere Lösung gibt.<br />
Danke fürs Mitgrübeln,</p>
<p>Quirks</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/87483/verzeichnisproblem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 23:53:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/87483.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 30 Sep 2004 12:01:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verzeichnisproblem on Thu, 30 Sep 2004 12:01:27 GMT]]></title><description><![CDATA[<p>Hallo, ich habe ein Programm geschrieben das sowohl 'fixe' Daten aus einem File ausliest, als auch dem Anwender die Möglichkeit gibt per FileBox Dateien zu öffnen.<br />
Nun hab ich folgendes Problem bemerkt:<br />
Wenn man als erstes Dateien aufruft und später auf die 'fixen' Datensätze zugreifen will (fix bedeutet, der user kann den Pfad zum Datensatz in einem Textfile im Programmverzeichnis selbst anlegen) stimmt das Verzeichnis nicht mehr und die Dateien werden nicht geöffnet, da dass CurrentDirectory sich verändert hat. Mein erster Lösungsweg war, bei Aufruf des Programms mit</p>
<pre><code>[cpp] GetCurrentDirectory(MAX_PATH, CurrentDir);[/cpp]
</code></pre>
<p>den Pfad zu speichern und beim Aufruf der fixen Datensätze zu verwenden.<br />
Soweit so gut. Allerdings hab ich ein weiteres Manko entdeckt und zwar, wenn das Programm von einem Link vom Desktop aus gestartet wird, der per default(=senden an--&gt;Desktop(verknüpfung erstellen)) erstellt wurde, ist das zu Anfang abgefragte Directory natürlich &quot;C:/Windows/Desktop&quot; und die Daten werden wieder nicht gefunden. Wenn ich den Link entsprechend abändere (ausführen in Prg-Verzeichnis) geht alles wieder, nur hab ich ja keinen Einfluß darauf wie ein Anwender einen Link erstellt. Was schlagt ihr also vor? Installationsroutine mit Link auf Desktop find ich nicht so toll. Gibt es eine Möglichkeit das &quot;echte&quot; Programmverzeichnis zu ermitteln? Mit</p>
<pre><code>[cpp]GetModuleFileName(hInstance, szFileName, MAX_PATH)
</code></pre>
<p>[/cpp] könnt ich zwar durch überprüfen und abänderen des Strings (bsp. szFileName - programm.exe = Programmpfad) jederzeit zu dem korrekten Programmpfad kommen, frag mich aber ob es nicht noch eine bessere Lösung gibt.<br />
Danke fürs Mitgrübeln,</p>
<p>Quirks</p>
]]></description><link>https://www.c-plusplus.net/forum/post/617922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/617922</guid><dc:creator><![CDATA[Quirks]]></dc:creator><pubDate>Thu, 30 Sep 2004 12:01:27 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnisproblem on Thu, 30 Sep 2004 12:37:31 GMT]]></title><description><![CDATA[<p>Afaik musst du schon den Weg über GetModuleFileName gehen, ist aber doch nicht allzu aufwändig:</p>
<pre><code class="language-cpp">CHAR szAppPath[MAX_PATH]; 
GetModuleFileName(NULL,szAppPath,sizeof(szAppPath)); 
*(strrchr(szAppPath,'\\')+1) = 0;

CHAR szFilePath[MAX_PATH];
lstrcpy(szFilePath,szAppPath);
lstrcat(szFilePath,&quot;config.ini&quot;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/617955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/617955</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 30 Sep 2004 12:37:31 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnisproblem on Thu, 30 Sep 2004 13:39:48 GMT]]></title><description><![CDATA[<p>Danke Flenders, werds dann mal so machen.</p>
<p>Gruß</p>
<p>Quirks</p>
]]></description><link>https://www.c-plusplus.net/forum/post/618023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/618023</guid><dc:creator><![CDATA[Quirks]]></dc:creator><pubDate>Thu, 30 Sep 2004 13:39:48 GMT</pubDate></item></channel></rss>