君子性非异也,善假于物也。

如有恒,何须三更起,半夜眠;最怕莫,三天打鱼两天晒网,竹篮打水一场空!
posts - 31, comments - 23, trackbacks - 0, articles - 30
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

MFC中获取程序运行的路径

Posted on 2006-10-31 21:56 neter 阅读(2745) 评论(2)  编辑 收藏 引用 所属分类: 程序设计
        在程序中有时候需要加载磁盘上资源文件的绝对路径(例如VC6中的FLASH播放组件),为了很好的实现这个功能我们就必须得获取到其资源所在的绝对路径,那么怎么来获取这个绝对的路径呢?好,现在让下面的例子来解开这个迷惑吧!~
一、常规的做法:
1.用API GetModuleFileName来获取可执行行文件的路径;
2.将获取的字符串中的最后一个 '\\'之后的字符全部去掉;
3.剩下的字符串即是我们所需要的;
 1CString CXXXX::GetPath()
 2{
 3    char path[256= "\0";
 4    GetModuleFileName(NULL, path, 256);
 5    char *= path + strlen(path);
 6    while(p != NULL && p>path && *!= '\\')
 7    {
 8            p--;
 9    }

10    char temp[256= "\0";
11    strncpy(temp,path,(p-path));
12    return CString(temp);
13}

二、利用C库函数来去掉后缀
 
1TCHAR path[MAX_PATH];
2 GetModuleFileName(NULL, path, MAX_PATH);
3 *strrchr(path,'\\'= '\0';    
       // path 即为需要的路径

Feedback

# re: MFC中获取程序运行的路径  回复  更多评论   

2008-06-07 22:54 by 天外有天
谢谢了

# re: MFC中获取程序运行的路径  回复  更多评论   

2008-06-07 23:39 by missdeer
有个API可以直接去掉文件名
PathRemoveFileSpec

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理