Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [VC++] Map van executable achterhalen (https://forum.scholieren.com/showthread.php?t=154771)

Lethalis 10-07-2002 12:27

[VC++] Map van executable achterhalen
 
Ik ben een adresboekje aan het schrijven om VC++ te leren en wil daarbij een bestand openen dat zich in de map van de executable bevindt. Bij Borland C++ Builder kon ik altijd heel eenvoudig die map achterhalen met de volgende code:

Code:

ExtractFilePath(Application->ExeName)
Hoe bereik ik hetzelfde met Visual C++ *?*

Ik heb al gezocht en bij de CWinApp klasse heb ik ook zoiets als een m_pszExeName, maar deze bevat geen path-informatie.

Hoe verder? :?

eddie 10-07-2002 12:32

als het bestand zich in dezelfde directory bevindt, kun je toch relative paden gebruiken?

Lethalis 10-07-2002 12:33

Citaat:

eddie schreef:
als het bestand zich in dezelfde directory bevindt, kun je toch relative paden gebruiken?
Probleem is opgelost: GetModuleFileName() :D

Nee, kun je niet. De workingdirectory wijkt vaak af van de executable-map.

Lethalis 10-07-2002 12:45

Dit is dus de bedoeling:
Code:

        //
        // CODE OM PATH VAN EXECUTABLE TE ACHTERHALEN
        //

        CString strFilePath;
        CString strFolderPath;

        //Get program file path
        TCHAR lpFileName[MAX_PATH+1];
        GetModuleFileName(NULL, lpFileName, MAX_PATH);
        strFilePath = lpFileName;
       
        //Get program folder
        int nLastIndex = strFilePath.ReverseFind('\\');
        if (nLastIndex != -1)
        {
                strFolderPath = strFilePath.Left(nLastIndex);
        } else {
                strFolderPath = _T("\\");
        }

        MessageBox(NULL, strFolderPath, "test", MB_ICONINFORMATION);

Ook al voer ik mijn programma ergens anders uit .. van mijn part in C:\ .. dan moet hij nog steeds de path achterhalen van de uitgevoerde executable. Snap je?

eddie 10-07-2002 12:56

ja.


Maar ik dacht dat dat vanzelf goed gebeurde :)


Alle tijden zijn GMT +1. Het is nu 03:04.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.