void GetModulePath(IN HMODULE hModule,IN OUT LPWSTR lpPathBuffer,IN DWORD nSize)
{
wchar_t *p,*q;
p = calloc(nSize,sizeof(char));
GetModuleFileName(hModule,p,nSize);
q = p;
while(wcschr(q,'\\'))
{
q = wcschr(q,'\\');
q++;
}
*--q = '\0';
wcscpy_s(lpPathBuffer,nSize,p);
}
为了使代码更强壮,使用如下函数作为替代:GetModuleFileName( ) 和 PathRemoveFileSpec( ) 。
TCHAR szPath[MAX_PATH];
if(GetModuleFileName(NULL, szPath, MAX_PATH))
{
PathRemoveFileSpec(szPath);
}
else
{
//异常处理
}
另外还有,
strFilePath = fileDlg.GetPathName();
strFilePath = strFilePath.Left(strFilePath.ReverseFind('\\'));