您的位置:首页 > 其它

GetCurrentDirectory 和GetModuleFileNamed的区别

2017-05-15 18:13 549 查看
转载自:http://blog.csdn.net/buaalei/article/details/5211422

一 

DWORD GetCurrentDirectory(

  DWORD
 nBufferLength,

  LPTSTR
 lpBuffer

);


The GetCurrentDirectory function retrieves the current directory for the current process.

GetCurrentDirectory返回当前进程的当前目录,并不一定返回你的应用程序的目录。如果你在应用程序中调用了打开文件对话框,你选择了一个文件,那么,这个文件所在的目录就成了当前进程的当前目录了。


Parameters


nBufferLength: 接收保存路径的字符串缓存长度, 缓存必须有一个保存结束的空字符的位置.


lpBuffer:指向接收字符串的缓存,收到的非空字符串指定了当前目录的绝对路径.



DWORD GetModuleFileName(

  HMODULE
 hModule,

  LPTSTR
 lpFilename,

  DWORD
 nSize

);

GetModuleFileName
 函数指定当前进程模块的路径.它仅仅操作当前进程下的模块.如果想获取其他进程下的模块信息, 则需使用 GetModuleFileNameEx 函数.

 


Parameters


hModule:模块的句柄,或者设置为NULL表示当前模块。


lpFilename:保存路径的缓冲区。


nSize:缓冲区的大小。

三 例子

例子:

 TCHAR strExePath[_MAX_PATH];

 GetModuleFileName(NULL,strExePath,_MAX_PATH);

 PathRemoveFileSpec(strExePath);

 

如果当前执行程序的位置为c:/test.exe,GetModuleFileName获取的strExePath即为c:/test.exe,通过去掉名称函数最终获得的strExePath为c:。(注意PathRemoveFileSpec 系统API函数调用时必须包含#include  "Shlwapi.h"作为头文件)

 TCHAR strExePath[_MAX_PATH];

 GetCurrentDirectory(_MAX_PATH, strExePath);

 获取当前的系统目录,可能是c:也可能是其他值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: