std::string GetCurrentExeDir()
{
  char szPath[1024] = { 0 };
#ifdef WIN32
  GetModuleFileName(NULL, szPath, 1024);
  char* p = strrchr(szPath, '\\');
#else
  readlink("/proc/self/exe", szPath, sizeof(szPath));
  char* p = strrchr(szPath, '/');
#endif
  *p = 0;
  return std::string(szPath);
}

BOOL SetCurrentWorkDir(std::string strPath)
{
  if (strPath.empty())
{
  strPath = GetCurrentExeDir();
}

#ifdef WIN32
  SetCurrentDirectory(strPath.c_str());
#else
  chdir(strPath.c_str());
#endif
  return TRUE;
}

先调用GetCurrentExeDir函数获取exe路径,然后使用结果设置SetCurrentWorkDir该函数参数即可,后续在应用程序里面即可使用相对路径

string strDir = GetCurrentExeDir();
SetCurrentWorkDir(strDir);

最新文章

  1. C# windows服务制作(包括安装及卸载)
  2. Codeforces Round #385 (Div. 2) A,B,C 暴力,模拟,并查集
  3. Monkeyrunner脚本中component快速定位方法
  4. 权限管理:(RBAC)
  5. 30-Razor语法基础
  6. Swift-CALayer十则示例
  7. 【面试题】Https
  8. Java数字、货币值和百分数等的格式化处理
  9. .Net程序员关于微信公众平台测试账户配置 项目总结
  10. 状态模式(State) 笔记
  11. 2017-2018-1 我爱学Java 第八周 作业
  12. cmake编译opencv时指定cuda版本
  13. php常用字符串方法
  14. ES6 的模块系统
  15. python笔记4-if..elif-else条件语句
  16. OWASP安全编码规范快速参考指南
  17. Azure 虚拟机代理概述
  18. 如何判断事务是否完成,SqlTransaction
  19. debug-stripped.ap_' specified for property 'resourceFile' does not exist.(转载)
  20. vim查找/替换字符串【转】

热门文章

  1. Spring Boot学习(四)常用注解
  2. Spring学习(七)bean装配详解之 【通过注解装配 Bean】【自动装配的歧义解决】
  3. 后端开发实践:Spring Boot项目模板
  4. Spring Boot(二) :Redis 使用
  5. GTA5整合版
  6. newifi3-D2 openwrt挂载u盘扩容/overlay
  7. Ajax接收int类型乱码
  8. Eclipse 重命名工程、包、类
  9. 用集装箱装ASP。带有Docker和Azure Kubernetes服务的NET Core应用程序
  10. Python中字符串有哪些常用操作?纯干货超详细