zoukankan      html  css  js  c++  java
  • MFC程序得到本身路径的方法

    MFC程序得到本身路径

    在开发工程中,往往需要知道当前程序本身所在目录。
    一种方法是在程序安装的时候利用安装程序把文件路径写入注册表。在较大的程序中,这种方法比较常用
    另一种,就是在程序得到路径。这样,程序随便移动到哪里,都可以得到正确的路径。这也是本文介绍的方法。

    方法一:(可以拓展得到与本程序同目录下的exe路径)
    [code]
    //首先得到帮助文件的路径
    CString strFullName = AfxGetApp()->m_pszHelpFilePath;
    //得到的是:"X:\\XXXX\\XXX.hlp",即为X:\XXXX\XXX.hlp

    //解析路径,得到当前运行程序所在目录
    char drive[_MAX_DRIVE];
    char dir[_MAX_DIR];

    _splitpath(strFullName, drive, dir, NULL,NULL);
    CString strPath;
    strPath.Format("%s%s", drive, dir);
    //strPath即为得到的当前运行程序所在目录
    [/code]
    另外,AfxGetApp()->m_pszAppName 得到应用程序名称
    AfxGetApp()->m_pszExeName 得到程序文件名,不包括扩展名

    方法二:
    得到全路径
    TCHAR exeFullPath[MAX_PATH]; // MAX_PATH
    GetModuleFileName(NULL,exeFullPath,MAX_PATH);//得到程序模块名称,全路径
    也就是当前运行程序的全路径
    利用方法一的解析路径的方法,即可得到程序所在路径。

    GetModuleFileName函数原型
    DWORD GetModuleFileName(
       HMODULE hModule,     // handle to module。将要得到的模块的句柄。如果是当前模块,NULL
       LPTSTR lpFilename,   // path buffer   得到的文件名。
       DWORD nSize          // size of buffer   一般MAX_PATH就可以了


    你问我生命中还有什么可追寻?

  • 相关阅读:
    死啃了String源码之后
    springBoot中Bean的生命周期
    @RequestMapping,@RequsetBody等注解说明
    mybatis的逆向工程的使用
    java中的Arrays这个工具类你真的会用吗
    Search in Rotated Sorted Array leetcode的第33道题
    看了Java的Class的源码,我自闭了
    面试被问了三次的http状态码到底有什么
    搞懂HashMap,这一篇就够了
    十大排序的java实现(配有动图)
  • 原文地址:https://www.cnblogs.com/avril/p/1526458.html
Copyright © 2011-2022 走看看