下面这个算法说明了从 cmd line 到 argc argv的方法,在获取进程信息时会被用到
void RunnerFinder::toArgument(const QString& cmd, int & argc, char ** &argv)
{
QStringList params = cmd.split(' ' , QString::SkipEmptyParts);
argc = params.size();
argv = new char *[sizeof (char *)*argc];
for (int i=0; i<argc; ++i) {
int size = params.at(i).size();
char * q = new char [size+1];
memset(q, 0, size+1);
argv[i] = q;
std::string pstr = params.at(i).toStdString();
const char * scmd = pstr.c_str();
memcpy(q, scmd, size);
}
}
QT是这样解析参数的
QCoreApplication app(argc, argv);
QStringList arglst = app.arguments();
本文介绍了一个用于将命令行输入(cmdline)转换为可在QT环境中使用的argc和argv参数的算法。该算法首先使用QStringList来分割命令行字符串,并将其转换为一系列字符指针,最终形成适用于QCoreApplication初始化的参数形式。

1094

被折叠的 条评论
为什么被折叠?



