C ++:获取exe文件夹路径的最佳方法?

时间:2018-06-16 16:25:28

标签: c++

我在另一个应该给你的论坛中找到了这个。但我认为这可能不是最佳方式,我认为由于数组未被删除而导致内存泄漏。这是真的?这也是最好的方式吗?

std::string ExePath() 
{
    using namespace std;

    char buffer[MAX_PATH];

    GetModuleFileName(NULL, buffer, MAX_PATH);

    string::size_type pos = string(buffer).find_last_of("\\/");

    if (pos == string::npos)
    {
        return "";
    }
    else 
    {
        return string(buffer).substr(0, pos);
    }
}

编辑:最好的方式是跨平台命令(如果它不存在然后使用Windows)直接提供文件夹目录。

1 个答案:

答案 0 :(得分:-3)

我怀疑还有什么比标准库更好的东西。

#include <filesystem>

std::filesystem::path cp = std::filesystem::current_path();

参考:https://en.cppreference.com/w/cpp/filesystem

e2a:引用链接的摘录。

  

注释

     

当前工作目录是与   进程,用作路径名解析中的起始位置   相对路径。

     

许多操作系统返回的当前路径很危险   全局变量。第三方可能会意外更改它,或者   系统库功能或其他线程。