您的位置:首页 > 其它

Windows API一日一练(52)GetCurrentDirectory和SetCurrentDirectory函数

2007-12-29 06:56 501 查看
在开发软件里,常常碰到要读取当前目录下的配置参数文件,或者打开当前目录下别的程序来运行,那么就需要获取当前进程的目录位置,这就需要使用函数GetCurrentDirectory获取当前进程所有在的目录。同时也可以使用SetCurrentDirectory函数来改变进程的当前目录。 函数GetCurrentDirectory和SetCurrentDirectory声明如下: WINBASEAPIDWORDWINAPIGetCurrentDirectoryA(    __in DWORD nBufferLength,    __out_ecount_part_opt(nBufferLength, return + 1) LPSTR lpBuffer    );WINBASEAPIDWORDWINAPIGetCurrentDirectoryW(    __in DWORD nBufferLength,    __out_ecount_part_opt(nBufferLength, return + 1) LPWSTR lpBuffer    );#ifdef UNICODE#define GetCurrentDirectory GetCurrentDirectoryW#else#define GetCurrentDirectory GetCurrentDirectoryA#endif // !UNICODE WINBASEAPIBOOLWINAPISetCurrentDirectoryA(    __in LPCSTR lpPathName    );WINBASEAPIBOOLWINAPISetCurrentDirectoryW(    __in LPCWSTR lpPathName    );#ifdef UNICODE#define SetCurrentDirectory SetCurrentDirectoryW#else#define SetCurrentDirectory SetCurrentDirectoryA#endif // !UNICODE nBufferLength是缓冲区的大小。lpBuffer是接收目录的缓冲区指针。lpPathName是设置的目录。 调用函数的例子如下:#001  //获取或者改变当前目录路径。#002  //蔡军生 2007/10/17 QQ:9073204 深圳#003  void GetCurDir(void)#004  {#005         //#006         TCHAR szBuf[MAX_PATH];#007         ZeroMemory(szBuf,MAX_PATH);#008         if (GetCurrentDirectory(MAX_PATH,szBuf) > 0)#009         {#010               //获取进程目录成功。#011               OutputDebugString(szBuf);#012         }#013         else#014         {#015               //改变当前目录位置。#016               SetCurrentDirectory(_T("C://"));#017         }#018 #019         OutputDebugString(_T("/r/n"));           #020  }#021   

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1829984
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐