プログラムの呼び出し

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
satoshi

プログラムの呼び出し

#1

投稿記事 by satoshi » 18年前

こんにちは。
今、メインのプログラムで別のプログラムを呼び出して実行させたいんですケド、全然わかりません。
誰かわかる人がいたらご教授お願いします。
ちなみにC++です。

管理人

Re:プログラムの呼び出し

#2

投稿記事 by 管理人 » 18年前

別のプログラムを呼び出すっていうのはほかの実行ファイルを実行させたいってことでいいんですか?

それでしたらシステム関数を使えばいいと思います。

satoshi

Re:プログラムの呼び出し

#3

投稿記事 by satoshi » 18年前

はじめまして、管理人さん。返答が遅れてしまい申し訳ありません。
まさに、実行ファイルを実行させたいんですが実行ファイルからデータも欲しいんです。
Win32アプリケーションで作成したGUIに、Win32コンソールアプリケーションで作成したsocketプログラミングで受け取ったデータを出力したいんです。
こんなことってシステム関数で出来るんですか?
また、その関数を教えてもらえれば幸いです。システム関数で調べてみたんですが見当たらなくて‥
よろしくお願いします。

box

Re:プログラムの呼び出し

#4

投稿記事 by box » 18年前

> こんなことってシステム関数で出来るんですか?

systemという名前の標準関数のことだと思います。
この関数で今回の希望が満たせるかどうかはわかりませんが…。

Justy

Re:プログラムの呼び出し

#5

投稿記事 by Justy » 18年前

 アプリから別のアプリを呼ぶC言語標準関数は sysytem()ですが、各OS毎に専用の APIが用意されていることがありますので、そのどちらかを使ってみて下さい。

 で、データのやりとりは、同じマシン上にある2つのアプリ間というなら「プロセス間通信」でぐぐればいろいろと出てくるかと。

 まぁ最悪、ファイルに書き出してそれを読みとる、という方法でも出来なくはないです。


 状況がよくわかりませんが、そのコンソールアプリ内にある受信したデータを受け取る部分を dll/共有ライブラリ化して、GUI側からも呼べるようにしてはどうですか?
 その方が楽なのでは。

satoshi

Re:プログラムの呼び出し

#6

投稿記事 by satoshi » 18年前

boxさん、Justyさん、ご返答ありがとうございます。

>Justyさん

>で、データのやりとりは、同じマシン上にある2つのアプリ間というなら「プロセス間通信」でぐぐればいろいろと出てくるかと。

プロセス間通信はやってみたのですが、いまいち使い方がよくわからなくて…


>そのコンソールアプリ内にある受信したデータを受け取る部分を dll/共有ライブラリ化して、GUI側からも呼べるようにしてはどうですか?

そんな方法があるんですね。無知ですみません。
そのやり方を詳しく書いてるところなどを知っていたら教えて下さい。
よろしくお願いします。

satoshi

Re:プログラムの呼び出し

#7

投稿記事 by satoshi » 18年前

すみません。system関数を利用して、実行しようとしたんですが、うまく実行されません。

system(" \"C:\Program1\\client\\debug\\client.exe\" ");

このようにして記述しているのですが、間違った記述ですか?
ちなみに、コンパイル時の警告で「エスケープシーケンスとして正しく認識されませんでした。」と出ます。
どなたかわかる人がいたらご教授ください。

keichan

Re:プログラムの呼び出し

#8

投稿記事 by keichan » 18年前

\"C:\\Program1\\Client\\debug\\client.exe\"
としてみてください。

satoshi

Re:プログラムの呼び出し

#9

投稿記事 by satoshi » 18年前

keichanさん回答ありがとうございます。
実行することができました。ありがとうございます。

ところで、system()関数では実行ファイルを実行するだけでデータの受け渡しができませんよね?
Justyさんが仰られたようにdllを作成して呼び出せるようにしようとしているのですが、私には難しいです…

なんとか頑張ってみます。
やって出来なかったらまた質問させてもらいます。
みなさんご回答ありがとうございました。

Yuki

Re:プログラムの呼び出し

#10

投稿記事 by Yuki » 18年前

socketプログラミングで受け取ったデータをファイルに出力するようにして、
起動側ではsystem()関数終了後、そのファイルを読んでデータをGetする
という仕組みではいけませんか?

閉鎖

“C言語何でも質問掲示板” へ戻る