获取当前运行程序所在路径(exe/dll)

C++ 同时被 2 个专栏收录
31 篇文章 0 订阅
31 篇文章 3 订阅

GetModuleFileName() 函数返回当前进程已加载可执行或DLL文件的完整路径名(以’\0’终止),该模块必须由当前进程地址空间加载。若要获取另一个已加载模块的文件路径,可以使用GetModuleFileNameEx()函数。

DWORD WINAPI GetModuleFileName(
  _In_opt_  HMODULE hModule,   //应用程序或DLL实例句柄,NULL则为获取当前程序可执行文件路径名
  _Out_     LPTSTR lpFilename, //接收路径的字符串缓冲区
  _In_      DWORD nSize        //接收路径的字符缓冲区的大小
);

注意:   
 MAX_PATH宏为编译器所支持的最长全路径名的长度,VC++6.0下为260。
    '\\'即为'\'。

例:

void CTestIMC3MoveDlg::GetAppFilePath(CString& strPath)
{
	GetModuleFileName(NULL, strPath.GetBufferSetLength(MAX_PATH+1), MAX_PATH);
	strPath.ReleaseBuffer();
	int nPos = strPath.ReverseFind('\\');
	strPath = strPath.Left(nPos);
}
调用:
	CString sPath;
	GetAppFilePath(sPath);
	CString strDllName = sPath + _T("\\ImcMoveCard4.dll");

另外:
MFC中CFile类的成员函数:CFile::GetFilePath(); //获取指定文件所在的目录
HMODULE GetModuleHandle(LPCTSTR lpModuleName)返回加载到当前进程地址空间的可执行文件或DLL文件的句柄,若参数为NULL,则返回当前进程的句柄(当前应用程序实例句柄)

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

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

抵扣说明:

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

余额充值