zoukankan      html  css  js  c++  java
  • VS2010/MFC 获取当前程序路径的方法

    第一种方法

    DWORD GetCurrentDirectory(
      DWORD nBufferLength,  // size, in characters, of directory buffer
      LPTSTR lpBuffer       // pointer to buffer for current directory
    );
    BOOL SetCurrentDirectory( LPCTSTR lpPathName
    // pointer to name of new current directory );

     第二种方法

    用GetModuleFileName得到应用程序的文件名(第一个参数为NULL)
    再用_splitpath分析文件名得到路径
    例如:
    //得到当前路径
     /*char buf[100];
     GetCurrentDirectory(sizeof(buf),buf);
     MessageBox(buf);
     HINSTANCE hInst=NULL;
     hInst=AfxGetApp()->m_hInstance;
     char path_buffer[_MAX_PATH];
     GetModuleFileName(hInst,path_buffer,sizeof(path_buffer));//得到exe文件的全路径
     //分离路径和文件名。
        char drive[_MAX_DRIVE];
        char dir[_MAX_DIR];
        char fname[_MAX_FNAME];
        char ext[_MAX_EXT];
     _splitpath( path_buffer, drive, dir, fname, ext );
     CString Path;
     Path.Format("%s%s",drive,dir);
    char path[300];
    strcpy(path,drive);
    strcat(path,dir);

    又或:

    TCHAR exeFullPath[MAX_PATH];
        CString strPath;
        GetModuleFileName(NULL,exeFullPath,MAX_PATH);
        strPath=(CString)exeFullPath;
        int position=strPath.ReverseFind('\');
        strPath=strPath.Left(position+1); 
        TCHAR FilePath[MAX_PATH];
        GetModuleFileName(NULL,FilePath,MAX_PATH);
        (_tcsrchr(FilePath,'\'))[1] = 0;//// 删除文件名,只获得路径字串   // C:****
        lstrcat(FilePath,_T("MY.ini")); 

     第三种方法

    VC中__argv[0]可以得到exe的程序名,然后用_splitpath可以分解得到程序路径。

     第四种方法

    #include<direct.h>
    char buf[_MAX_PATH];
    _getcwd(buf,_MAX_PATH);

     第五种方法

    是得到操作系统所在的目录
    char buf[100];
     GetSystemDirectory(buf,100);
     MessageBox(buf);
  • 相关阅读:
    Jenkins构建项目
    jenkins的理解及安装
    GitLab初识以及代码迁移
    深入浅出Git(偏向理论)
    理解下所谓的ssh隧道
    洛谷-P1908 逆序对
    洛谷-P1010 幂次方
    洛谷-P1226 【模板】快速幂||取余运算
    洛谷-P1074 靶形数独
    洛谷-P1433 吃奶酪
  • 原文地址:https://www.cnblogs.com/rainbow70626/p/12152461.html
Copyright © 2011-2022 走看看