Na een aantal c++ posts is mijn project voor school bijna af, althans....
Ik ben tegen de zoveelste rare kwestie aangelopen, namelijk:
Als ik bijvoorbeeld via een opendialog een file opsla of weer open BUITEN de map vanwaar ik mijn programma draai dan treedt het probleem op.
(dit saven en openen werkt overigens prima het probleem is een gevolg van het gebruik van de opendialog)
Ga ik vervolgens een andere file openen, welke zich in dezelfde dir bevindt als vanwaar ik de executable run, dus als volgt:
pfLeesIn=fopen("VijfLetters","r");
Dan krijg ik de fout dat hij de file niet kan vinden. Open ik vantevoren NIETS met de opendialog dan opent hij hem wel.
dus de inital open dir of iets dergelijks wordt waarschijnlijk door de opendialog geset op een andere dir dan de homedir. waardoor bij de fopen de file niet gevonden kan worden.
Full path heeft geen zin want het programma moet vanuit verschillende paths/dirs gerunned kunnen worden.
Ook heb ik gedacht aan het achterhalen van de path vanwaar de exe draait en dit path te gebruiken. Dit door de /tralalala.exe eraf te splitsen en de filenaam die ik wil openen eraan te plakken, dmv onderstaande code, maar ik vind dit nogal een provisorische oplossing.
char cDirectoryBuffer[300];
GetModuleFileName(NULL, cDirectoryBuffer, 300) ;
Mijn vraag: Heb ik hier te maken met een bug in windows?
en hoe kan ik ervoor zorgen dat ik de initial dir weer op de homedir kan zetten als het ware?
Ik ben tegen de zoveelste rare kwestie aangelopen, namelijk:
Als ik bijvoorbeeld via een opendialog een file opsla of weer open BUITEN de map vanwaar ik mijn programma draai dan treedt het probleem op.
(dit saven en openen werkt overigens prima het probleem is een gevolg van het gebruik van de opendialog)
Ga ik vervolgens een andere file openen, welke zich in dezelfde dir bevindt als vanwaar ik de executable run, dus als volgt:
pfLeesIn=fopen("VijfLetters","r");
Dan krijg ik de fout dat hij de file niet kan vinden. Open ik vantevoren NIETS met de opendialog dan opent hij hem wel.
dus de inital open dir of iets dergelijks wordt waarschijnlijk door de opendialog geset op een andere dir dan de homedir. waardoor bij de fopen de file niet gevonden kan worden.
Full path heeft geen zin want het programma moet vanuit verschillende paths/dirs gerunned kunnen worden.
Ook heb ik gedacht aan het achterhalen van de path vanwaar de exe draait en dit path te gebruiken. Dit door de /tralalala.exe eraf te splitsen en de filenaam die ik wil openen eraan te plakken, dmv onderstaande code, maar ik vind dit nogal een provisorische oplossing.
char cDirectoryBuffer[300];
GetModuleFileName(NULL, cDirectoryBuffer, 300) ;
Mijn vraag: Heb ik hier te maken met een bug in windows?
en hoe kan ik ervoor zorgen dat ik de initial dir weer op de homedir kan zetten als het ware?