怎样获取应用程序的当前路径?不要笑话我啊! 在VB中有App.path可以得到程序的当前路径,那么在VC中呢?就是很菜,大家不要笑话,CString str=GetCurrentPathName()不知道可不可以,我用了一下,不行,难道是因为没包含相应的头文件?如果哪位哥哥有相应的函数可以麻烦你告诉我函数名,还有应该包含的头文件。谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GetModuleFileName,然后去掉文件名 DWORD GetCurrentDirectory( DWORD nBufferLength, LPTSTR lpBuffer);reference MSDN 我都是用这种方式来做的:调用AfxGetApp()->m_pszHelpFilePath,然后去掉文件名称。 CString paths=AfxGetApp()->m_pszHelpFilePath ; char sCurPath[256]; int nPos=paths.ReverseFind('\\'); paths=paths.Left(nPos); strcpy(sCurPath,paths); 不要使用getcwd的方式,cwd(current work directory),因为,如果你打开一个d:\tmp目录,那么当前的工作目录就是d:\tmp了,而不是你的程序的目录,我以前吃过这个亏。 这样做: CFile file; CFileException fe; TCHAR LFileName[MAX_PATH]; GetModuleFileName(NULL,LFileName,MAX_PATH); if(strchr(LFileName,'\\')) *strrchr(LFileName,'\\')='\0'; strcat(LFileName,"\\Log.txt"); if(!file.Open(LFileName,CFile::modeWrite,&fe)) { fe.ReportError(); return FALSE; } CString GetCurDir(){ CString strPath; //获得当前的路径 int FullLength = GetModuleFileName(NULL,strPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH); strPath.ReleaseBuffer (); int nPos; nPos=strPath.ReverseFind ('\\'); strPath=strPath.Left (nPos+1); return strPath;}一个字不露得复制就可以了,嘿嘿你要是再懒就下载http://www.monocers.com/jon/shitmp3/shitClass.rar我得SManageFile类里直接有这个静态得函数! LPTSTR temp = (LPTSTR)0; char szPathTmp[256],szPath[256]; ZeroMemory(szPath,256); GetModuleFileName(0, szPathTmp, 256); temp = strrchr(szPathTmp, '\\'); strncpy(szPath,szPathTmp,strlen(szPathTmp)-strlen(temp)); AfxMessageBox(szPath); SDK编程,怎么把800×600图片贴在整个窗口上阿 大家对VC自带的滚动条控件熟悉么? 关于CreateBitmapIndirect产生HBITMAP类型的问题 工具栏中文字出现图标右边? VC中如何将一个矩形的长和宽(单位是厘米)转换成以像素为单位 求《深入浅出mfc》(简体版) 帮忙看看这个 那位有现成的将一个BYTE的指定位置为0的函数 socket传输问题,请教高手!! 不用GDI+,如何实现渐变填充 在dll Link中出现的问题 如何实现编辑框中文件的保存?
DWORD nBufferLength,
LPTSTR lpBuffer
);reference MSDN
char sCurPath[256];
int nPos=paths.ReverseFind('\\');
paths=paths.Left(nPos);
strcpy(sCurPath,paths);
CFile file;
CFileException fe;
TCHAR LFileName[MAX_PATH];
GetModuleFileName(NULL,LFileName,MAX_PATH);
if(strchr(LFileName,'\\'))
*strrchr(LFileName,'\\')='\0';
strcat(LFileName,"\\Log.txt");
if(!file.Open(LFileName,CFile::modeWrite,&fe))
{
fe.ReportError();
return FALSE;
}
{
CString strPath;
//获得当前的路径
int FullLength = GetModuleFileName(NULL,strPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
strPath.ReleaseBuffer ();
int nPos;
nPos=strPath.ReverseFind ('\\');
strPath=strPath.Left (nPos+1);
return strPath;
}一个字不露得复制就可以了,嘿嘿
你要是再懒就下载
http://www.monocers.com/jon/shitmp3/shitClass.rar
我得SManageFile类里直接有这个静态得函数!
char szPathTmp[256],szPath[256];
ZeroMemory(szPath,256);
GetModuleFileName(0, szPathTmp, 256);
temp = strrchr(szPathTmp, '\\');
strncpy(szPath,szPathTmp,strlen(szPathTmp)-strlen(temp));
AfxMessageBox(szPath);