[英]How to get the executable file name in C++?
当编译器编译代码时,它会输出一个可执行文件。 我想要做的是在运行时获取该可执行文件的名称。 唯一的问题是我搜索的每个地方,我只能找到获取可执行文件整个路径的方法。
如果我有一个名为app.exe
的可执行文件,我想在控制台中输出它。 网上有人说要使用GetModuleFileName
、 GetModuleBaseName
和argv[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.