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

时间: 2024-08-04 10:27:43

VC++获取可执行文件当前目录的相关文章

如何在跨平台的情况下获取可执行文件的详细信息和属性

很多情况下我们需要获取到系统中一些可执行文件的版本号,以便做一些附加动作!其实可以使用jna获取,但是这将依赖人家,所以还是Java自己来吧!好啦,直接上代码吧 /** * @Description: * * @Title: FileInfoUtil.java * @Package com.joyce.util * @Copyright: Copyright (c) 2014 * * @author Comsys-LZP * @date 2014-5-12 下午03:46:32 * @versi

VC++获取IDC_EDIT的7种方法

VC++获取IDC_EDIT的7种方法 http://blog.csdn.net/baizengfei/article/details/7997618 //第一种方法 int number1, number2, number3; char char1[10], char2[10], char3[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(cahr1, 10); GetDlgITem(IDC_EDIT2)->GetWindowText(char2, 10)

VC获取文件后缀名

VC获取文件后缀名 2011-07-28 10:30:50|  分类: Visual C++ and O |  标签: |举报 |字号大中小 订阅 1. CString GetSuffix(CString strFileName) {         return strFileName.Right(strFileName.GetLength()-strFileName.ReverseFind('.')-1); }2.PathFindExtension3.忽略大小写方法 CString::Mak

vc 获取 硬盘序列号 和 cpu

vc 获取 硬盘序列号 和 cpu 唯一iD的方法?如题---------网上找来很多资料 也没找到, 要支持xp win7 32/64 系统下都能获取 硬盘序列号 和cpu ID 哪位朋友帮帮忙:------解决方案--------------------不是很确定 没有测试64位的 http://blog.sina.com.cn/s/blog_612b382d0100efdt.html------解决方案--------------------CString cpu_id(){ int s1

VC 获取指定文件夹路径的方法小结

VC获取指定文件夹路径 flyfish  2010-3-5 一 使用Shell函数 1 获取应用程序的安装路径 TCHAR buf[_MAX_PATH];SHGetSpecialFolderPath(NULL,buf,CSIDL_PROGRAM_FILES,NULL);AfxMessageBox(buf); 2 获取应用程序数据路径的文件夹 TCHAR bufApplicateData[_MAX_PATH];SHGetSpecialFolderPath(NULL,bufApplicateData

[转]VC++获取文件大小集锦

方法一: WIN32_FIND_DATA fileInfo; HANDLE hFind; DWORD fileSize; const char *fileName = 文件的路径及名字; hFind = FindFirstFile(fileName ,&fileInfo); if(hFind != INVALID_HANDLE_VALUE) fileSize = fileInfo.nFileSizeLow; FindClose(hFind); 方法二: HANDLE hFile; // the

VC++获取屏幕大小第二篇 物理大小GetDeviceCaps 上

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net 上一篇<VC++获取屏幕大小第一篇像素大小GetSystemMetrics>中介绍了使用GetSystemMetrics函数来获取屏幕的像素大小,本篇将介绍使用GetDeviceCaps函数来获取屏幕的物理大小.下面来看看GetDeviceCaps函数的用法: 函数功能:用于得到被定义的系统数据或者系统配置信息 函数原型:获取一些

MFC: 获取可执行文件目录 + 写日志函数

获取可执行文件目录 inline CString GetExeDir() { TCHAR szPath[ MAX_PATH ] = { 0 }; GetModuleFileName( NULL, szPath, MAX_PATH ); CString csFullPath( szPath ); int nPos = csFullPath.ReverseFind( _T( '\\' ) ); if( nPos < 0 ) return CString( "" ); else ret

Windows VC++ 调整进程当前目录为程序可执行文件所在目录

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net 本文配套程序下载地址为:http://download.csdn.net/detail/morewindows/5165721 转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8683519 欢迎关注微博:http://weibo.com/MoreWindo