MFC 获取可执行文件的路径 获取当前可执行文件的目录

VC++ 同时被 3 个专栏收录
7 篇文章 0 订阅
6 篇文章 0 订阅
9 篇文章 0 订阅

在MFC和Console下获取当前执行文件路径的方法

一、在MFC下可以调用函数GetModuleFileName

头文件include Windows.h

DWORD GetModuleFileName(

  HMODULE hModule,//装载一个程序实例的句柄。如果该参数为NULL,该函数返回该当前应用程序全路径
  LPTSTR lpFilename,//是你存放返回的名字的内存块的指针,是一个输出参数
  DWORD nSize//装载到缓冲区lpFileName的最大值
  );

使用过程中需要去掉**.exe:

方法一:GetModuleFileName(NULL, fullPath,100)
 strPath=(CString)fullPath;  
  int position=strPath.ReverseFind('\\'); //反向查找"\"所在的位置
  strPath=strPath.Left(position+1); //或者strpath=strPath.Left(position)+_T("\\"); 

方法二:GetModuleFileName(NULL, szFilePath, MAX_PATH); 
m_filepath=CString(szFilePath); 
int len=m_filepath.GetLength();
int i=0; 
for (i=len-1;i>-1;i--) 

if(m_filepath[i]!= '\\')
m_filepath.Delete(i,1); 
else  
break; 
}  

之后可以直接利用“+”实现字符串的衔接,如:CString pathresult=m_filepath+"result.txt";

二、在console程序中,依然可以调用GetModuleFileName,但是我只添加了#include <afx.h>头文件,但是可以运行,不知道合理不合理。

        int  pathlen = ::GetModuleFileName(NULL,pathbuf,100);   
  // 替换掉单杠
  while(TRUE)
  {
  if(pathbuf[pathlen--]=='\\')
  break;
  }
  pathbuf[++pathlen]=0x0;//添加结束符
   strcat(pathbuf,"\\result.txt");//后面衔接要存储的文档名。开始用数组下标一个一个字符写进去,笨死了,忘了基本的c函数。

三、1、字符串的衔接
strcat函数说明:
extern char *strcat(char *dest,char *src);
把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
头文件:
  #include <string.h>
  在C++中,则存在于<cstring>头文件中。
2、字符串的复制
strcpy函数说明:
extern char *strcpy(char *dest,char *src);
把src所指由NULL结束的字符串复制到dest所指的数组中。
头文件:
同上!!

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值