注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Kandy

长风破浪会有时,直挂云帆济沧海!

 
 
 

日志

 
 

获得当前应用程序的运行目录  

2009-10-16 15:03:02|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

在开发过程中经常需要获得程序当前的运行目录,这时就可以使用GetModuleFileName函数
DWORD WINAPI GetModuleFileName(
HMODULE hModule,
LPTSTR lpFileName,
DWORD nSize
);
函数功能
 此函数得到当前应用程序的运行目录,还包括应用程序的文件名。
参数说明
 hModule:要获取文件名的模块名柄,可以是运用LoadLiberary得到的句柄,null表示当前模块
 lpFileName:输出参数,存放取得的文件名
 nSize:lpFileName参数的长度

DWORD GetCurrentDirectory(
  DWORD nBufferLength, // size of directory buffer
  LPTSTR lpBuffer // directory buffer
  );
函数功能
   找到当前进程的当前目录
参数说明
   nBufferLength:lpBuffer缓冲区的长度
   lpBuffer:指定一个预定义字串,用于装载当前目录
返回值
   调用成功 返回装载到lpBuffer的字节数。

调用示例:
TCHAR *path = new TCHAR[MAX_PATH];
ZeroMemory(path, MAX_PATH);
// path == "d:\Project\Test\MFC\MFC\debug"
GetCurrentDirectory(MAX_PATH, path);
// path ==  "d:\Project\Test\MFC\debug\MFC.exe"
GetModuleFileName(NULL,path,MAX_PATH);

补充说明:
如果想得到一个已经加载的DLL文件的路径,可以运用以下方法:
char  strPath[MAX_PATH];  
GetModuleFileNameA(GetModuleHandle("你的DLL名字"),strPath,MAX_PATH);
int j=strlen(strPath);
for(j=strlen(strPath);strPath[j]!='\\';j--);
strPath[j]='\0'; 
其中strPath即为你的DLL文件所在的目录
   

  评论这张
 
阅读(1438)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017