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得到的文件路径名分解开来,想想真是伤心啊。

 

posted @ 2014-09-23 22:35  三井瘦  阅读(1729)  评论(0编辑  收藏  举报