以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  Visual C++获取程序当前路径  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=33357)


--  作者:zhu_ruixian
--  发布时间:5/30/2006 9:38:00 PM

--  Visual C++获取程序当前路径
Visual C++获取当前路径

1.
GetCurrWorkingDir(){
     CString strPath;
     GetCurrentDirectory(MAX_PATH,strPath.GetBuffer(MAX_PATH));
     strPath.ReleaseBuffer();
     return strPath;
}
2.CString CPropertySampleApp::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;
}

使用第一段代码可以获得应用程序运行时所在目录。但由于在使用Microsoft Visual Studio.NET编译并

运行项目时,真正的宿主是IDE,所以当前目录是项目所在目录,并不是DEBUG或者RELEASE目录,这一点需要注意。而第二段代码可以动态解决此问题。并且增加了Unicode支持(TCHAR)。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms