MFC:GetCurrentDirectory函数

MFC:GetCurrentDirectory函数,mfc,Mfc,我知道MFC框架上存在GetCurrentDirectory()和SetCurrentDirectory()函数,但我的应用程序中没有CFtpConnection对象。我有一个简单的CWinApp派生类,我想在程序启动时检索它的工作目录。实现这个目标最简单的方法是什么?提前感谢您的建议。GetCurrentDirectory是一个简单的Win32 API函数,因此只需如下调用它: TCHAR currentDir[MAX_PATH]; GetCurrentDirectory( MAX_PATH,

我知道MFC框架上存在GetCurrentDirectory()和SetCurrentDirectory()函数,但我的应用程序中没有CFtpConnection对象。我有一个简单的CWinApp派生类,我想在程序启动时检索它的工作目录。实现这个目标最简单的方法是什么?提前感谢您的建议。

GetCurrentDirectory是一个简单的Win32 API函数,因此只需如下调用它:

TCHAR currentDir[MAX_PATH];
GetCurrentDirectory( MAX_PATH, currentDir );

我假设您正在尝试获取.exe文件所在的目录,而不是当前目录。此目录可以与当前目录不同

    TCHAR buff[MAX_PATH];
    memset(buff, 0, MAX_PATH);
    ::GetModuleFileName(NULL,buff,sizeof(buff));    
    CString strFolder = buff;
    strFolder = strFolder.Left(strFolder.ReverseFind(_T('\\'))+1);    

看见与是否有CFtpConnection对象无关。Dupe:在正常情况下,工作文件夹将在用户应用程序数据文件夹中找到,并且有一个特殊的API来获取特殊文件夹位置。因此,您必须决定如何管理工作文件夹的位置。有相同的代码,但使用CString类(不要忘记为
CString
对象调用
ReleaseBuffer()
):
CString curDir;GetCurrentDirectory(最大路径,curDir.GetBufferSetLength(最大路径));curDir.ReleaseBuffer()exe(或dll)的路径不一定是当前目录。一旦情况不再如此,如果使用此解决方案,您将遇到问题。您在谈论什么?此解决方案只是为了避免当前目录与exe文件所在的目录不同的情况。这个问题与他原来提出的问题不同。