在MFC的程式开发中,常会找目前的路径及设定路径,找了很久,发现一些常用的API
1. GetModuleFileName() : 找当前执行程序的路径
DWORD WINAPI GetModuleFileName( __in_opt HMODULE hModule, __out LPTSTR lpFilename, __in DWORD nSize);
参数:
hModule [in, optional] : 找当前执行程式的路径,这个参数设为NULL。lpFilename [out] : 回传的路径。 nSize [in] : lpFilename的size。
相关说明可参考以下路径
http://msdn.microsoft.com/en-us/library/windows/desktop/ms683197(v=vs.85).aspx
Ex:
char mFilename[512] = {'0'};
char mPath[1024] = {'0'};
GetModuleFileName(NULL, mFilename, sizeof(mFilename));
CString Path;
Path.Format("%s", mFilename);
Path = Path.Left(Path.ReverseFind('\\'));//解析运行程序所在文件夹的目录
CString configFile=_T(Path + "\\ErrorCode.ini");
2. SetCurrentDirectory() : 变更目前系统设定的路径。
BOOL WINAPI SetCurrentDirectory( __in LPCTSTR lpPathName);
参数 :
lpPathName [in] : 所要设定的路径。
回传值 :
设定成功,传回值不为0.
设定不成功,传回值为0. 使用 GetLastError 取得错误讯息.
范例 :
#define BUFSIZE MAX_PATH
TCHAR Buffer[BUFSIZE];
if( !SetCurrentDirectory(Buffer) )
{
printf("SetCurrentDirectory failed (%d)\n", GetLastError());
return;
}
3. GetCurrentDirectory() : 取得当前程序的路径
DWORD WINAPI GetCurrentDirectory( __in DWORD nBufferLength, __out LPTSTR lpBuffer);
参数 :
- nBufferLength [in] : buffer的大小。
lpBuffer [out] : 路径的buffer,以TCHAR定义buffer。
回传值 :
设定成功,传回值不为0.
设定不成功,传回值为0. 使用 GetLastError 取得错误讯息.