Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何访问在QT中传递给程序的参数_C++_Qt - Fatal编程技术网

C++ 如何访问在QT中传递给程序的参数

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

我有4个相互关联的过程。在第一个程序中,我有一个函数,它从用户那里获取输入,然后执行第二个程序。以下函数执行第二个程序:

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是否有您不使用的原因?