プロジェクト間の変数のやりとりについて

[戻る]
kuu 2005/06/20(月) 12:40:28
 最近VC++6.0を始めた者です。初歩的なものかもしれませんが教えてください。

 二つのプロジェクトがあり、a.dswとb.dswのワークスペースをそれぞれVC++6.0で起動した
時に、bのプロジェクトで扱われている変数をaのプロジェクトで使用したいのですが、各種本を
見たりしましたがわかりません。

 方法がありましたら教えてください。よろしくお願いします。

PATIO 2005/06/20(月) 13:16:08
使用したいという意味がちょっとわかりかねるのですが、
(情報もかなり不足しているようですし)
仮に二つのプロジェクトがDLLではなく実行ファイルを作成する物だとして
それぞれが別の実行ファイルであるという話であれば、
片方の中で使用している変数をもう一つの実行ファイル側で直接参照することは
出来ないと思います。基本的に実行ファイルが別ならプロセスも別になるはずなので
別プロセス内の変数を参照する事は出来ないはずです。
共有するための仕組みを作った上で両方のプロセスで共有するのであれば、
可能だと思いますけれど。

使用したいというのが具体的にどのようなコードを想定しているのか
明確に説明できないと的確なアドバイスを受けるのは難しいでしょう。
また、プロジェクトの構成とかMFCの仕様の有無とか、
プロジェクトを作成した時にアプリケーションウィザードでどんな選択をしたのかとか
とにかく、あなたが説明してくれないとこちら側ではわかるはずがない部分は
考えうる限り説明してください。
基本的に説明しすぎるということはまず無いので、
何処まで説明していいのかわからないのであれば、わかっている内容は全て説明する
つもりで書いた方が無難です。

RAPT 2005/06/20(月) 13:16:11
変数を使いたいとはどういう意味ですか?

変数名を同じにしたいのならそうすればいいだけですし、データのやり取りをしたい?
2つのプロジェクトを1つに統合したい?

目的を書いてもらうと適切なヒントがもらえる可能性が高いですよ。

RAPT 2005/06/20(月) 13:17:17
# おっと、PATIOさんとニアミス。

PATIO 2005/06/20(月) 13:18:40
誤字発見。(T-T)

誤)
また、プロジェクトの構成とかMFCの仕様の有無とか

正)
また、プロジェクトの構成とかMFCの使用の有無とか

kuu 2005/06/20(月) 13:54:52
 言葉足らずで申し訳ありません。

 MFCを使用しています。MFC AppWizard(exe)を選択し設定の画面ではMDIとなった状態でその
他は選択することなく終了して設定を終えました。


 やりたいことは、位置センサの値を取得するプログラムaと画像処理のプログラムbがありまし
て、この二つは別々のプロジェクトで作成されています。位置センサの値をaプログラムで
data.Station[0].Orientation[0], 
data.Station[0].Orientation[1],
data.Station[0].Orientation[2]
という中に値を格納してあります。この値をbプログラムで参照することは可能なのかと言うこ
とをお聞きしたいと思いました。説明できていなかったら申し訳ありません。

 プロジェクトを一つにする方法もできれば教えていただきたいです。

tib 2005/06/20(月) 14:34:53
共有メモリを使いたい、ということでしょうか。
「Memory Mapped File」という手が使えると思います。

http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_FileMapping.html

επιστημη 2005/06/20(月) 15:05:05
aとbが異なるマシンで動作することを想定しているなら、
socketなどのプロセス間通信も検討せんと。

kuu 2005/06/20(月) 16:17:30
 tibさんありがとうございます。とても参考になりました。

 もう少しお聞きしたいのですが、先ほども質問させていただきましたが元が別のプロジェクト
を一つにすることは可能なのでしょうか。またその際、一つに合わせた後は実行すると両方の実
行結果が得られるのでしょうか。すいませんがお願いします。

tib 2005/06/20(月) 16:36:41
> 元が別のプロジェクトを一つにすることは可能なのでしょうか。

質問が曖昧すぎます。「元が別のプロジェクトを一つにする」とは具体的にどういうこと
ですか?

・2つの別のプログラム(.exeファイル)を、1つのプログラムにまとめたい。
・2つのプロジェクト(.dspファイル)を1つのワークスペース(.dswファイル)で管理したい。

前者なら、そのプログラムの機能次第です。ソースファイルを適宜マージするなどしてく
ださい。

後者なら、片方のワークスペースを開いているところにもう片方のプロジェクトファイル
を登録すればいいでしょう。

kuu 2005/06/20(月) 17:27:05
[[解決]]
 ありがとうございました。
 目的としていたことができるようになりました。

tib 2005/06/20(月) 17:43:20
> 目的としていたことができるようになりました。
私はあなたの質問の内容が具体的に解らないまま、闇雲に答えていただけに過ぎません。
後日、似たような問題で悩むであろう人達のためにも「何をしたら何ができたのか」を書
いて頂けませんか?

古いスレッドには追加発言できません。