主要用到的函数就是GetCurrentDirectory(1000,buf);要预先包含头文件,也就是这个函数的解释头文件windows.h,具体操作以一个例子给出吧:
#include <iostream>
#include <windows.h>
#include <string>
using namespace std;
int main()
{
charbuf[1000];
inti=1000;
GetCurrentDirectory(1000,buf); //得到当前工作路径
cout<<buf<<endl;
charstrModule[256];
GetModuleFileName(NULL,strModule, 256); //得到当前模块路径,这个是带exe的路径,//后面会讲
cout<<strModule<<endl;
return 0;
}
还可以用 GetModuleFileName(NULL,szPath,MAX_PATH);
具体过程如下:要预先包含头文件,也就是这个函数的解释头文件windows.h,而MAX_PATH实在C的一个头文件中定义的,不用管他,就是一个数260.然后要初始化定义变量并对变量进行清零
TCHAR szPath[MAX_PATH];
memset(szPath,0,MAX_PATH);
然后用函数获取当前exe的具体运行路径
GetModuleFileName(NULL,szPath,MAX_PATH);
然后,上面获取的路径是这样的d:\sfjs\salfj\**.exe,如果要去掉后面的exe,则要加入
CString spath(szPath);
CStringpath="Starteroffline.exe";
path=spath.Trim(path);
其中双引号为你的应用的名字