VC++获取可执行文件当前目录
char lpszCurrentPath[MAX_PATH] ; //MAX_PATH是Win32定义的一个宏,表示Windows允许的最大路径255; GetCurrentDirectory(MAX_PATH , lpszCurrentPath );
GetCurrentDirectory可以获取程序当前运行的目录,而不是当前可执行文件的目录。我在网上阅读别人的博客是,时常看到有人写这个函数可以获取当前着执行文件的目录,想想实在误导别人啊。当然这个函数的名字也很具有迷惑性。
获取当前可执行文件的是另外一个函数:GetModuleFileName;
char ModuleFileName[_MAX_PATH]; GetModuleFileName(NULL , ModuleFileName , _MAX_PATH ); char ExePath[_MAX_DIR]; //当前文件夹 char ExtName[_MAX_EXT]; //文件后缀 char ExeFName[_MAX_FNAME]; //文件名 char ExeDiver[_MAX_DRIVE]; //文件驱动器,如C: _splitpath(ModuleFileName , ExeDiver , ExePath , ExeFName, ExtName );
_splitpath绝对是个好东西,在我不知道这个函数之前,居然手动把GetModuleFileName得到的文件路径名分解开来,想想真是伤心啊。