gpt4 book ai didi

c++ - 如何判断应用程序在 C++ 中运行的位置

转载 作者:搜寻专家 更新时间:2023-10-31 01:15:35 24 4
gpt4 key购买 nike

我在我的应用程序旁边使用 wget 下载一个 jar 并运行它。问题是我当前的设置 wget.exe 必须保存在应用程序数据的文件夹中,这真的不明智,即文件将如何开始?

那么,无论应用程序从何处运行,如何找到运行该应用程序的目录?

最佳答案

对于窗口:

std::string calculateRunPath()
{
const unsigned int size = 500;
char buf[size] = {0};
HMODULE hModule = GetModuleHandle(NULL);
GetModuleFileName(hModule,buf, sizeof(buf));

std::string path(buf);
size_t pos = path.find_last_of('\\');

return path.substr(0, pos);
}

对于 Linux:

std::string calculateRunPath()
{
const unsigned int size = 500;
char path[size + 1] = {0};

size_t len = readlink("/proc/self/exe", path, size);
path[len] = 0;
char* p = strrchr(path, '/');
if(p)
*(p + 1) = 0;
else
path[0] = 0;

return std::string(path);
}

关于c++ - 如何判断应用程序在 C++ 中运行的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9953859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com