转载自: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:也可能是其他值。