問題の解決策を見つけるのに苦労していますが、解決方法がわかりません。
私が作成したいくつかのプログラムのユーザー インターフェイスを作成しています (そのため、ボタンを押すだけで実行可能ファイルを開始できます)。だから私はqtを使うことを考えました。
だから私はQProcessについてたくさん読んで、それを使おうとしました。
私の最初の実行可能ファイルで、QProcess::start() で起動しようとしましたが、うまくいかなかったので、QProcess:execute() で試しました。
QProcess *proc = new QProcess(this);
QDir::setCurrent("C:\\DIRTOTHEEXE\\");
QString program="HELLO.exe";
proc->execute(program);
これは私のプログラムを完全に実行し、うまく機能します。
だから私は他のexeで同じことをしようとしましたが、うまくいきませんでした
QProcess *myproc = new QProcess(this);
QDir::setCurrent("C:\\DIRTOTHEEXE\\");
QString program="HelloWorld.exe";
myproc->start(program);
呼び出された実行可能ファイルは、単純に「Hello World」と出力して 0 を返します。
だから今私の質問は次のとおりです:この動作を引き起こす可能性があるのはなぜですか?最初の実行可能ファイルに QProcess::start() を使用できないのはなぜですか?
ところで:私は workingDirectory() をexeのパスに設定しようとしましたが、それもうまくいきませんでした。
誰かが私を助けてくれることを願っています。
編集:プログラムは実行されますが、1行を印刷した直後にクラッシュします。
編集: ここでは、HelloWorld ソースです。
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
cout<<"HELLO WORLD!!"<<endl;
return 0;
}