C语言获取当前的工作路径

在C语言中获取当前的工作路径的方法一般是用内置函数为:

DWORD GetModuleFileName(HMODULE hModule, LPTSTR lpFilename, DWORD nSize);
  • 函数的参数说明:

  1.  hModule 装载一个程序实力的句柄。如果该参数为NULL,该函数返回当前应用程序的全路径;

  2.  lpFileName 是存放返回的名字的内存块的指针,是一个输出参数;

  3. nSize 装载缓冲区lpFileName的最大值。

  • 函数的返回值:

  1. 如果返回成功,将在lpFileName的缓冲区当中返回相应模块的路径,如果nSize过小,那么返回仅按所设置缓冲区的大小返回相应的字符串内容;

  2. 如果函数失败,返回值将为0,并返回GetLastError异常代码。

    值得注意的是需要添加头文件为:include "Windows.h"

例子:

#define MX_PATH 200

... 

WCHAR buff[MAX_PATH];                        //用于存放获取路径的信息    
GetModuleFileName(NULL, buff, MAX_PATH);     // 第一个参数为句柄,NULL则指向当前程序;第二个参数用于存放地址的指针;第三个参数是系统自带的宏定义,也就是长度。
CString str = buff;                           // 将buff存放的路径赋值给字符串str,此时的buff的值如 “C:\Desktop\TEST\Debug\***.exe”
int pos = str.ReverseFind('\\');               // 查找倒数最后一个‘\\’符号
str = str.Left(pos+1);                         // str只获取exe所在文件加的路径,str为 “ C:\Desktop\TEST\Debug\”
...

// 值得注意的是:第三步的ReverseFind()函数中使用的是单引号


版权声明:本文为weixin_43340455原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。