void GetWorkingFolder(std::string& folder){folder.resize(MAX_PATH*2 + 1, '\0'); //留长一点,防止后面再连接一个Cloudwalk时出错//获取当前程序目录,如果是C盘,则获取APPDATA目录,然后在末尾添加目录后缀HANDLE hExeHandle = GetModuleHandle(NULL);if(hExeHandle != nullptr) {GetModuleFileNameA((HMODULE)hExeHandle, &folder[0], MAX_PATH);folder = folder.substr(0, folder.find_last_of("\\") + 1);} else { //失败场景下,获取当前工作目录if (0 == GetCurrentDirectoryA(MAX_PATH, &folder[0])) {//再失败,那就只能默认.\目录了folder = ".";}}//判断是否首字母为C,写死吧,不去判断windows是否安装在其他盘了if ( (folder[0] == 'C') || (folder[0] == 'c') ) {std::string strTemp(MAX_PATH + 1, '\0');if (S_OK == SHGetFolderPathA(NULL, CSIDL_APPDATA | CSIDL_FLAG_CREATE, NULL, SHGFP_TYPE_DEFAULT, &strTemp[0])) {folder = strTemp;}}//判断最后一个字符是否为if (folder[folder.length() - 1] != '\\') {folder += '\\';}
}

转载于:https://www.cnblogs.com/eaglexmw/p/11314821.html

以一种标准的办法,获取工作目录相关推荐

  1. R 语言怎么保存工作目录到当前路径_第一讲 R基本介绍及安装

    今天是第一讲,带你走进R的世界.R是用于统计计算和数据可视化的免费且功能强大的编程语言.R可用于计算各种经典的统计检验,以及各种最新的统计学建议方法.以小编使用R近10年的经验来看,论文中有什么最新最 ...

  2. QT学习笔记(五):Qt5的8种标准对话框示例

    QT学习笔记(五):Qt5的8种标准对话框示例 前言 实例展示 1.颜色对话框 2.文件对话框 3.字体对话框 4.输入对话框 5.消息对框 6.进度对话框 7.错误信息对话框 8.向导对话框. 前言 ...

  3. Python - 140种标准库、第三方库和外部工具整理

    Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连接.数 ...

  4. 初级程序员经常犯的10种错误,网友:工作几年了都还在犯

    初级程序员经常犯的10种错误,网友:工作几年了都还在犯 小编在网上经常容易看见#程序员如何升职#.#程序员的进阶之路#这样的话题,于是我整理了一些网上的资料并结合自己的经验,梳理出了10种初级程序员经 ...

  5. ajax获取后台数据的几种方式及如何获取ajax内部的数据供外部使用

    文章目录 1 ajax获取后台数据的几种方式 1.1 原生js的ajax方式 1.1.1 get 1.1.2 post 1.2 jQuery封装的ajax方式 1.2.1 $.ajax 1.2.2 $ ...

  6. 欧盟正研究用三种标准技术应对DNS漏洞

    欧洲网网络与信息安全局(ENISA)正在研究用三种不同方法增强网络地址系统的安全,应对最近发现的互联网域名系统中的安全漏洞. 互联网域名系统中的安全漏洞是研究人员Dan Kaminsky首先发现了.这 ...

  7. 用Java获取当前工作目录

    我想使用以下命令访问我当前的工作目录 String current = new java.io.File( "." ).getCanonicalPath();System.out. ...

  8. 客户端登陆 T3标准版,已停止工作

    服务器没有问题,可以登陆可以正常操作,但是在客户端就是这个提示, 试过畅捷通的提供的方法---以下是用友畅捷通官方提示解决方法,但是还是不行. 登录T3提示[T3标准版已停止工作]一般是兼容或者网络连 ...

  9. 关于拨号上网的几种错误解决办法

    关于拨号上网的几种错误解决办法 如果以下方法都无法解决,可以直接私信远程帮助调试哦!!! PPPOE拨号上网: 三种系统拨号方法链接 WIN7: dwz.cn/2Kf5YB WIN10: dwz.cn ...

最新文章

  1. 在线作图|微生物多样性分析——稀释曲线
  2. GIT 源码管理-简介
  3. cfa mock exam 2020下载_2019年6月CFA考试为什么一定要做MOCK?
  4. python 的下划线_
  5. WPF 2D绘图(2)Geometry
  6. Android之Android Studio常用插件
  7. linux u盘 uid pid,linux下的pid文件的作用
  8. 计算机故障检修课过时,第三场公开课|电脑故障维修以及笔记本知识科普
  9. 局部遮荫光伏matlab,一种基于随机蛙跳全局搜索算法的局部阴影光伏阵列MPPT控制的制作方法...
  10. Java将一个对象的属性值copy给另一个相同的对象
  11. simpson积分模板
  12. c++ 读取hdmi输入信号_小白需要知道HDMI知识
  13. v2ex热帖:面了几个程序员(3-5年),发现他们对MySQL的distinct关键字有误解......
  14. Google Talk的一个问题
  15. dh-make指定包含低线_的构建目录
  16. 远程服务器窗口调大,远程桌面缩放
  17. 人工智能数学基础--概率与统计9:概率运算、加法公理、事件的独立性、概率乘法定理、条件概率、全概率公式以及贝叶斯公式
  18. 仿苹果手机_安卓变苹果,苹果控制中心也能用上了
  19. 微信公众号使用:设置开发者密码(AppSecret)的步骤
  20. 英语论文拟定论文标题的基本原则

热门文章

  1. 华为linux找不到引导u盘,magicbook BIOS里找不到U盘启动
  2. 单机 docker 部署fastfds_云服务器使用docker可视化一键部署Wrodpress个人博客,操作简单,适合小白...
  3. OpenGL基础10:变换
  4. HDU 5934 2016CCPC杭州 B: Bomb(Trajan强连通)
  5. bzoj 2440: [中山市选2011]完全平方数(二分+莫比乌斯函数)
  6. GraphQL | 一种配得上凡尔赛的API框架
  7. matlab2c使用c++实现matlab函数系列教程-trace函数
  8. AD小技巧:update changes to PCB后如何调整布线
  9. 【披着递推皮的动态规划】 山区建小学 题解
  10. ThinkPHP5 ajax传值到后台进行处理(验证是否含有某段字符串、截取字符串、字符串转数组)...