我运行了一个Qt应用程序,我想知道这个可执行文件的名称。
我对其他评论认为这不是一个Qt问题的观点必须(部分)持有异议:Qt有一个方法QCoreApplication::applicationFilePath()
,可以获取可执行文件的目录和文件名。
在Linux上,它将尝试使用/proc
,在Windows上可能会使用GetModuleFileName()
。根据文档,它将退回到argv[0]
。
然后,您可以使用QFileInfo
将其拆分成可执行文件名称和目录。
QFileInfo(QCoreApplication::applicationFilePath()).fileName()
QApplication解析命令行参数,第一个条目是可执行文件的名称 - 这与标准C中的argv [0]大致相同,但在Windows上有一些额外的复杂性,如果您使用Unicode构建或者应用程序作为服务启动。
再次强调,这并不是一个Qt的问题。要找到执行的二进制文件的名称,可以使用以下命令:
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
cout << argv[0] << endl;
return 0;
}
argv [0]
不需要实际包含有关可执行文件的任何有用信息。请参见https://dev59.com/ZXE85IYBdhLWcg3wZyqt#2794171获取详细信息。 - paxdiablo
QCoreApplication::applicationDirPath()
。 - CameronQCoreApplication::applicationFilePath: 请先实例化 QApplication 对象
。 - GuySoftQApplication a(argc, argv); QString appPath = a.applicationFilePath();
- Neurotransmitter