MFC 获取当前程序执行文件路径
时间: 2023-07-19 07:22:40 浏览: 212
在 MFC 中,可以使用 GetModuleFileName 函数来获取当前程序执行文件的路径。具体方法如下:
```C++
TCHAR szPath[MAX_PATH];
GetModuleFileName(NULL, szPath, MAX_PATH);
```
在上面的示例中,第一个参数为 NULL,表示获取当前应用程序的模块句柄;第二个参数为输出缓冲区,用于存储获取到的路径;第三个参数为输出缓冲区大小。
调用 GetModuleFileName 函数后,szPath 数组中存储的就是当前程序执行文件的路径。
需要注意的是,获取到的路径可能包含多余的字符,例如双引号、空格等。如果需要使用获取到的路径,需要对其进行处理,例如去掉多余的字符。以下是一个示例代码:
```C++
TCHAR szPath[MAX_PATH];
GetModuleFileName(NULL, szPath, MAX_PATH);
CString strPath(szPath);
strPath.TrimRight(_T("\" "));
```
在上面的示例中,使用 CString 类型来保存获取到的路径,并使用 TrimRight 函数去掉字符串右侧的多余字符,包括双引号和空格等。
相关问题
MFC 获取程序执行文件路径
在 MFC 中,获取程序执行文件的路径可以使用 GetModuleFileName 函数来实现。具体方法如下:
```C++
TCHAR szPath[MAX_PATH];
GetModuleFileName(NULL, szPath, MAX_PATH);
```
在上面的示例中,第一个参数为 NULL,表示获取当前应用程序的模块句柄;第二个参数为输出缓冲区,用于存储获取到的路径;第三个参数为输出缓冲区大小。
调用 GetModuleFileName 函数后,szPath 数组中存储的就是程序执行文件的路径。
需要注意的是,获取到的路径可能包含多余的字符,例如双引号、空格等。如果需要使用获取到的路径,需要对其进行处理,例如去掉多余的字符。以下是一个示例代码:
```C++
TCHAR szPath[MAX_PATH];
GetModuleFileName(NULL, szPath, MAX_PATH);
CString strPath(szPath);
strPath.TrimRight(_T("\" "));
```
在上面的示例中,使用 CString 类型来保存获取到的路径,并使用 TrimRight 函数去掉字符串右侧的多余字符,包括双引号和空格等。
mfc 获取当前文件路径
您可以使用 MFC 中的 GetCurrentDirectory 函数来获取当前应用程序的工作目录,然后使用 GetModuleFileName 函数获取当前可执行文件的路径:
```c++
TCHAR szPath[MAX_PATH];
::GetCurrentDirectory(MAX_PATH, szPath);
::GetModuleFileName(NULL, szPath, MAX_PATH);
CString strPath(szPath);
CString strFilePath = strPath.Left(strPath.ReverseFind('\\'));
```
这样,strFilePath 就是当前可执行文件所在的路径。
阅读全文