繁体   English   中英

如何在C++中获取可执行文件名?

[英]How to get the executable file name in C++?

当编译器编译代码时,它会输出一个可执行文件。 我想要做的是在运行时获取该可执行文件的名称。 唯一的问题是我搜索的每个地方,我只能找到获取可执行文件整个路径的方法。

如果我有一个名为app.exe的可执行文件,我想在控制台中输出它。 网上有人说要使用GetModuleFileNameGetModuleBaseNameargv[0] ,但所有这些都给了我 .exe 的完整路径,比如C:\\Users\\Lone-PC\\Desktop\\app.exe ,而不仅仅是C:\\Users\\Lone-PC\\Desktop\\app.exe app.exe单独的app.exe

我不想使用任何库,这些都打包在 Windows 机器的控制台应用程序中。

感谢用户HTNW,我找到了我想要的东西。 我必须从提到的方法(如argv[0]处理目录。

所以我查了一下并借用了代码并制作了一个函数,该函数将以字符串形式返回文件名。

这是解决我的问题的代码

string getFileName(string path) {
    string filename = path;
    const size_t last_slash_idx = filename.find_last_of("\\/");
    if (std::string::npos != last_slash_idx) {
        filename.erase(0, last_slash_idx + 1);
    }
    const size_t period_idx = filename.rfind('.');

    return filename;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM