回答受付が終了しました

C++でアプリケーションから外部のEXEを起動し、アプリケーションとEXE間で値の受け渡しを行いたいのですが可能なのでしょうか?

C言語関連153閲覧xmlns="http://www.w3.org/2000/svg">500

回答(7件)

可能です。いろいろなやり方が出来ますが、ReadProcessMemory, WriteProcessMemoryを使うのも一つの方法です。 《処理例》 渡したいデータが入った変数のアドレスと、データを受け取るための変数のアドレスをコマンドライン引数に追加して外部EXEを起動します。 外部EXEはReadProcessMemoryを使ってデータを読み取り、WriteProcessMemoryを使ってデータを書き込みます。 また、親のアプリケーションは自己のプロセスIDもコマンドラインに追加しておきます。外部EXEはプロセスIDをOpenProcessによって開いてプロセスハンドルを取得し、ReadProcesMemory、WriteProcessMemoryへの引数として使います。

画像

この回答はいかがでしたか? リアクションしてみよう

可能か不可能かで言えば可能です。 ですがそれは、起動される方の EXE に、計算して欲しいデーターを起動後に受け取れる仕組みがある場合だけです。 無いだろうとは思っていますが、もしも両方を質問者様が作るのでしたら、【プロセス間通信】についてヤフると勉強になります。 そうではない場合は、起動される方の EXE が「起動後にどうやって計算するデーターを受け取るのか」を調べて、その通りにしなければなりません。

プロセス間通信という方法があります。 方法はググればたくさん出てきますから説明は省略します。