获取exe和dll路径

本文介绍了如何在C++中获取程序(EXE文件)及其动态链接库(DLL文件)的完整路径。提供了两种方法,一种是通过`GetModuleFileName`函数获取当前运行程序的路径,并从中提取目录路径;另一种是通过相同函数获取指定DLL文件的路径。
摘要由CSDN通过智能技术生成

获取exe和dll路径  

2011-12-28 09:52:11|  分类: VC—小技巧 |  标签: |字号 订阅

 // TODO: 在此添加额外的初始化代码
 CString SetupPath;
 GetExePath(SetupPath);  //获取程序当前路径
 CString config_userconfig=SetupPath+_T("users\\userconfig.cfg");

 


//函数名称:GetPath
//说       明: 获取程序的路径
//入       参:
//出       参: strPath目录路径
//说       明:

void CTestDlg::GetExePath(CString& strPath)
{
 TCHAR szFull[_MAX_PATH];
 TCHAR szDrive[_MAX_DRIVE];
 TCHAR szDir[_MAX_DIR];
 ::GetModuleFileName(NULL, szFull, sizeof(szFull)/sizeof(TCHAR));
 _tsplitpath(szFull, szDrive, szDir, NULL, NULL);
 _tcscpy(szFull, szDrive);
 _tcscat(szFull, szDir);
 strPath = CString(szFull);
}


//

DLL:Demo.dll

/

 CString strFilePath;

  TCHAR tzPath[MAX_PATH+sizeof(TCHAR)] = {0};
  GetModuleFileName(::GetModuleHandle(_T("Demo")), tzPath, MAX_PATH);
  lstrcpy( _tcsrchr(tzPath, _T('\\'))+ 1, _T("file.xml"));
  strFilePath = tzPath;

 

 

  1. #include<stdio.h>   
  2. #include<Windows.h>   
  3. #include "tchar.h"   
  4.   
  5. char *THCAR2char(TCHAR* tchStr)     
  6. {     
  7. int iLen = 2*wcslen(tchStr);//CString,TCHAR汉字算一个字符,因此不用普通计算长度      
  8. char* chRtn = new char[iLen+1];    
  9. wcstombs(chRtn,tchStr,iLen+1);//转换成功返回为非负值      
  10. return chRtn;     
  11. }   
  12.   
  13. int main()  
  14. {  
  15.     TCHAR szFilePath[MAX_PATH];  
  16.     DWORD szRet = ::GetModuleFileName(NULL, szFilePath, MAX_PATH);  
  17.     char *pFilePath=THCAR2char(szFilePath);  
  18.     if(szRet)  
  19.     {  
  20.         printf("FilePath=%s\n",pFilePath);  
  21.     }else{  
  22.         printf("Failed\n");  
  23.     }  
  24.     return 0;  
  25.   
  26. }  

       

       

       TCHAR szFilePath[MAX_PATH]; 
       DWORD szRet = ::GetModuleFileName(NULL, szFilePath, MAX_PATH); 

       CString cstrFilePath = szFilePath;
       int nPos = cstrFilePath.ReverseFind('\\');

       cstrFilePath = cstrFilePath.Left(nPos);

       cstrFilePath += "\\XXXXX";

       

      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

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

      余额充值