windows API 第 11 篇 GetCurrentDirectory SetCurrentDirectory

GetCurrentDirectory函数获得当前文件所在的目录,并不是进程的目录(debug 和 release),它和GetCommandLine不同
这里只讲

GetCurrentDirectory,GetCurrentDirectory是一个宏
#ifdef UNICODE
#define GetCurrentDirectory  GetCurrentDirectoryW
#else
#define GetCurrentDirectory  GetCurrentDirectoryA
#endif // !UNICODE


看一下定义:
//获得当前文件所在目录:
DWORD GetCurrentDirectory
                                                 DWORD nBufferLength,  // size of directory buffer
                                                 LPTSTR lpBuffer       // directory buffer);

参数都比较简单,不做过多的介绍。
返回值:调用成功则返回写入lpBuffer的字符个数,不包括'\0',失败则返回0,
如果缓冲区的长度不够,则函数返回实际需要的缓冲区大小,包括'\0'。
//设置当前目录:
BOOL SetCurrentDirectory(  LPCTSTR lpPathName   // new directory name
                                            );

举例说明:
    char szDir1[MAX_PATH] = { 0 };
    DWORD dwLen1 = GetCurrentDirectoryA(MAX_PATH, szDir1);

    WCHAR *pDir2 = NULL;
    DWORD dwLen2 = GetCurrentDirectory(0, pDir2);

    pDir2 = new WCHAR[dwLen2];
    DWORD dwLen = GetCurrentDirectory(dwLen2, pDir2);

    delete []pDir2;

posted on 2018-10-08 15:04  priarieNew  阅读(706)  评论(0编辑  收藏  举报

导航