首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 在MFC中如何获得工程所在的路径? [已结帖,结帖人:ww2734]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ww2734
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-19 10:06:03 楼主
    如题,请指教,谢谢
    刚才忘了写分数!
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jameshooo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      5

    发表于:2008-08-19 10:15:081楼 得分:0
    一旦工程被编译成最终执行代码,运行时就已经跟工程没关系了,只能获得当前EXE文件路径,不能获得工程路径
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jason_wentzel
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:17:072楼 得分:5
    CString GetMoudulePath()
    {
    HMODULE module = GetModuleHandle(0);
    CHAR buf[MAX_PATH];
    GetModuleFileName(module, buf, sizeof buf);

    CString str1;
    int pos=-1;
    str1.Format("%s",buf);
    for(int i=str1.GetLength();i>0;i--)
    {
    pos=str1.Find("\\",i);
    if(pos>0)
    break;
    }
    str1=str1.Left(pos);
    return str1;
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ww2734
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:17:223楼 得分:0
    引用 1 楼 jameshooo 的回复:
    一旦工程被编译成最终执行代码,运行时就已经跟工程没关系了,只能获得当前EXE文件路径,不能获得工程路径

    那么,如何获得当前EXE文件路径?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zaodt
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:19:134楼 得分:5

    Win32 API 函数 【GetModuleFileName】


    for example:

    ::GetModuleFileName(AfxGetInstanceHandle(),  sFilename,  _MAX_PATH);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jameshooo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      5

    发表于:2008-08-19 10:19:455楼 得分:15
    TCHAR szPath[MAX_PATH];
    GetModuleFileName(NULL, szPath, MAX_PATH);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • douzexin1111
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:24:236楼 得分:5
    引用 5 楼 jameshooo 的回复:
    TCHAR szPath[MAX_PATH];
    GetModuleFileName(NULL, szPath, MAX_PATH);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • schlafenhamster
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:25:087楼 得分:5
    GetCurrentDirectory(MAX_PATH,curpath);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • naixian1983
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:37:598楼 得分:5
    引用 5 楼 jameshooo 的回复:
    TCHAR szPath[MAX_PATH];
    GetModuleFileName(NULL, szPath, MAX_PATH);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • primer_programer
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:40:469楼 得分:5
    int getApplicationPath( CString& strModulePath )
    {
    CString strApplicationPath;
    GetModuleFileName( NULL, strApplicationPath.GetBuffer( 255 ), 255 );
    strApplicationPath.ReleaseBuffer();
    strApplicationPath = strApplicationPath.Left( strApplicationPath.ReverseFind( '\\' ) + 1 );

    strModulePath = strApplicationPath;

    return 0;
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cnzdgs
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 7

      2

      17

    发表于:2008-08-19 11:20:5910楼 得分:5
    用GetModuleFileName可以获得EXE文件路径。
    代码中__FILE__表示源文件路径,默认是相对路径,可以在项目属性—C/C++—高级选项中设置使用完整路径(/FC参数)。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ww2734
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 11:33:5711楼 得分:0
    结合以上经验,小弟写了个不伦不类的

    GetModuleFileName(NULL, szPath, MAX_PATH);
    int ac=strlen(szPath)-18;

    for (i=0;i <ac;i++)
    {
    szPaths[i]=szPath[i];
    }
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved