VC 取得程序所在目录的方法
来源:互联网 发布:android retrofit2源码 编辑:程序博客网 时间:2024/05/17 04:06
如果到网上搜索VC中取得程序所在目录的函数, 大家都说是GetCurrentDirectory, 函数原型为DWORD GetCurrentDirectory(DWORD nBufferLength, LPTSTR lpBuffer); 使用简单, 直接将当前路径读到lpBuffer中, 方便快捷, 但是注意它是把当前路径读到lpBuffer中, 而未必是程序所在目录, 由于当前目录是可以通过SetCurrentDirectory修改的, 也会在弹出一个地址选择框后修改的, 所以不要寄希望于它了.
幸好我们还可以找到另一个API, 它的名字是GetModuleFileName, 函数原型为DWORD GetModuleFileName(HMODULE hModule, LPTSTR lpFilename, DWORD nSize), 该函数能直接找到当前应用程序的绝对路径, 唯一遗憾的是它不能直接得到目录路径, 我们需要对它进行简单处理, 得到程序所在目录, 以下简单代码即可实现.
char pLocalPath[255];
memset(pLocalPath, 0, sizeof(pLocalPath));
GetModuleFileName(AfxGetInstanceHandle(), pLocalPath, sizeof(pLocalPath));
pLocalPath[strrchr(pLocalPath, '\\') - pLocalPath] = '\0';
AfxMessageBox(pLocalPath);
以下函数是网上有人写好的, 稍微复杂点:
CString CXXXXXXApp::GetCurDir()
{
TCHAR sDrive[_MAX_DRIVE];
TCHAR sDir[_MAX_DIR];
TCHAR sFilename[_MAX_FNAME],Filename[_MAX_FNAME];
TCHAR sExt[_MAX_EXT];
GetModuleFileName(AfxGetInstanceHandle(), Filename, _MAX_PATH);
_tsplitpath(Filename, sDrive, sDir, sFilename, sExt);
CString homeDir(CString(sDrive) + CString(sDir));
int nLen = homeDir.GetLength();
if(homeDir.GetAt(nLen-1) != _T('\'))
homeDir += _T('\');
return homeDir;
}
- VC 取得程序所在目录的方法
- java中取得 当前程序运行所在的目录
- VC获取程序所在目录
- VC++ 取得光驱所在的盘符
- VC获得文件所在目录路径的方法
- VC创建目录及取得系统时间的方法
- VC取得当前目录和操作系统盘符的方法
- 获取Java程序所在目录的简单方法---FYI
- 获取程序的所在目录
- Java取得代码所在行号的方法
- GetProcessImageFileNam取得EXE所在目录
- 取得程序的真实目录
- VC: 调试模式下无法读取程序所在目录的问题
- 迅雷中的“打开文件所在目录”并定位文件的vc实现方法
- Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法
- Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法
- 如何在取得程序运行时所在的路径
- evc 获得程序运行所在的目录
- VB中KeyCode的取法
- 双向链表操作
- 对数据库操作的常用函数大全
- 经典FLASH收藏
- 一首影画绝美的MTV--杨竹青《仙林青梅》
- VC 取得程序所在目录的方法
- Javascript显示当前页面中所有图片的特效
- 期待已久的国庆阅兵
- Oracle服务端和客户端查询脚本(懒人版)
- SQL注入之脚本篇-FOR ACCESS数据库
- CMD下一个命令遍历目录删除相同垃圾文件
- ActionContext和ServletActionContext小结
- 写个设置命令的VBS脚本工具。
- 拆分五笔字库,提高导入到google拼音的速度