C++ 如何访问在QT中传递给程序的参数
我有4个相互关联的过程。在第一个程序中,我有一个函数,它从用户那里获取输入,然后执行第二个程序。以下函数执行第二个程序:C++ 如何访问在QT中传递给程序的参数,c++,qt,C++,Qt,我有4个相互关联的过程。在第一个程序中,我有一个函数,它从用户那里获取输入,然后执行第二个程序。以下函数执行第二个程序: void MainWindow::ExecuteCuiMode(QString arg_username, QString arg_password, QString arg_domain, QString arg_computer_name, QString arg_ui_type) { QString FinalUsername = "user:"; QS
void MainWindow::ExecuteCuiMode(QString arg_username, QString arg_password, QString arg_domain, QString arg_computer_name, QString arg_ui_type)
{
QString FinalUsername = "user:";
QString FinalPassword = "ntlm:";
QString FinalDomain = "domain:";
QString FinalComputerName = "pc:";
QString FinalUIType = "ui:";
FinalUsername.append(arg_username);
FinalPassword.append(arg_password);
FinalDomain.append(arg_domain);
FinalComputerName.append(arg_computer_name);
FinalUIType.append(arg_ui_type);
QString Arguments = FinalUsername + " " + FinalPassword + " " + FinalDomain + " " + FinalComputerName + " " + FinalUIType;
if(ShellExecuteA(NULL, NULL, "Backend.exe", Arguments.toStdString().c_str(), NULL, SW_SHOWNORMAL))
{
statusBar()->showMessage("Program Status: Connected to " + FinalComputerName);
}
else
{
statusBar()->showMessage("Program Status: Connection Failed.");
}
}
在第二个程序(Backend.exe)中,我尝试访问传递给程序的参数,如以下示例所示:
QString firstArgument = QApplication::arguments().at(1);
QMessageBox::information(this, "Message", firstArgument);
但是当第二个程序执行时,它什么也没有显示。我不知道问题出在哪里 有一个非常微妙的点,QApplication不处理的参数被简单地删除,而那些不处理它们的参数等于1,所以1不是您想要的参数,我认为您需要调用
QStringList QCoreApplication :: arguments ()
查看列表中是否有该参数?您使用的是哪个qt版本?基于qt 5.14.1(MSVC 2017,32位)的qt Creator 4.11.1是否有您不使用的原因?