1.//以下代码来自优快云 2004 VC编程经验总结
{
CString strPath;
GetCurrentDirectory(MAX_PATH,strPath.GetBuffer(MAX_PATH));
strPath.ReleaseBuffer();
return strPath;
}
2.//以下代码来自TZ MFC.NET Primer 1.01
CString CPropertyGridSampleApp::GetCurrWorkingDir()
{
CString strPath;
TCHAR szFull[_MAX_PATH];
TCHAR szDrive[_MAX_DRIVE];
TCHAR szDir[_MAX_DIR];
::GetModuleFileName(NULL, szFull, sizeof(szFull)/sizeof(TCHAR));
_tsplitpath(szFull, szDrive, szDir, NULL, NULL);
_tcscpy(szFull, szDrive);
_tcscat(szFull, szDir);
strPath = CString(szFull);
return strPath;
}
VC 获得当前应用程序所在路径(exe文件的路径)
VC 获得当前应用程序所在路径(exe文件的路径)
TCHAR szFilePath[MAX_PATH + 1];
GetModuleFileName(NULL, szFilePath, MAX_PATH);
(_tcsrchr(szFilePath, _T('//')))[1] = 0; //删除文件名,只获得路径
GetModuleFileName(NULL, szFilePath, MAX_PATH);
(_tcsrchr(szFilePath, _T('//')))[1] = 0; //删除文件名,只获得路径
CString str_url = szFilePath;
AfxMessageBox(str_url);
AfxMessageBox(str_url);
使用第一段代码可以获得应用程序运行时所在目录。但由于在使用Microsoft Visual Studio.NET编译并运行项目时,真正的宿主是IDE,所以当前目录是项目所在目录,并不是DEBUG或者RELEASE目录,这一点需要开发人员注意。而第二段代码可以动态解决此问题。并且增加了Unicode支持(TCHAR)。