• ベストアンサー

vb6で異なるのプロジェクト間で、値を渡したい

VB6で、以下1~3のような画面を作成したとします。 1.プロジェクトA・ログイン画面フォーム 2.プロジェクトB・照会画面フォーム 3.プロジェクトC・登録画面フォーム まず、1を表示して、ログインして、 次に2や3の画面に、ログイン情報を渡してやりたいのですが、 どうすればよいでしょうか? 異なるプロジェクト間で値を渡せません。

質問者が選んだベストアンサー

  • ベストアンサー
  • don_go
  • ベストアンサー率31% (336/1059)
回答No.5

プロジェクトA,B,CをActiveX DLLとして作成すればメイン モジュールからそれらのコンポーネントを呼ぶだけですみ ます。 #変数の受渡しもプロパティを使用すれば可能。 プロジェクトグループにすれば、モジュール間のデータの 受渡し等の動作確認もできます。

lokki3
質問者

お礼

ActiveX DLLでうまくいきました。 ありがとうございました。

lokki3
質問者

補足

ActiveX DLLでうまくいきました。 ありがとうございました。

その他の回答 (5)

回答No.6

えと、まだ解決状態になっていないようなので、ついでに。 根本的なところで、「そもそもプロジェクトを分ける必要があるのか?」 という部分も考えてみた方がいいかもしれませんよ。

  • NYOI
  • ベストアンサー率58% (56/96)
回答No.4

>つまり、コンパイル後のexeでは実行できるが >デバック中では、値を渡しているところを確認できないということでしょうか? No.1で書いた参考URLの一番最初に、デバック中に値を渡しているところを確認する方法が書かれております。

lokki3
質問者

お礼

コマンドラインでうまくいきました。 しかし、ActiveX DLLを使用することに決まりました。 ありがとうございました。

noname#140971
noname#140971
回答No.3

各種情報を構造体変数に代入して排出。 構造体変数を呼び込んで破棄。 この間、0.001秒もあれば十分。 で、で、どうしても解読不能にしたければする。 常駐して監視するアプリケーションを用意してもOK。 が、構造体変数を読み書きするのが一番簡単と私は思います。

lokki3
質問者

お礼

構造体変数については、後日勉強します。 ありがとうございました。

回答No.2

セキュリティ等について問題が無ければ、NYOI氏が書かれた方法が 一番楽でしょう。 但し、単なるコマンドラインでの引渡しなので、「ファイル名を指定して実行」等で 1が他の起動に使う文字列と同じ文字列を入力して起動すれば、 1通さなくても他が起動出来てしまいます。 それが嫌なら、何らかの方法でアプリケーション間通信を行うしかないでしょう。 「visualbasic6 アプリケーション間通信」でググったら色々出てきましたが、方法として ・SendMessage ・DDE ・OLEオートメーション とかがあるようです。 SendMessageを使った処理のサンプルが載っているページを参考として貼っておきます。 多少面倒そうだけど。

参考URL:
http://www.geocities.co.jp/SiliconValley/4805/vbtips/vbtips096.htm
lokki3
質問者

お礼

コマンドラインでうまくいきました。 しかし、ActiveX DLLを使用することに決まりました。 ありがとうございました。

  • NYOI
  • ベストアンサー率58% (56/96)
回答No.1

BとCはAから呼び出すのでしょうか? それならばコマンドライン引数を利用してみてはいかがでしょう。

参考URL:
http://homepage1.nifty.com/rucio/main/technique/Function.htm
lokki3
質問者

補足

コマンドラインを使用するということは、 Aファームに、 Dim RetVal RetVal = Shell("C:\フォルダB\B.exe xx") と記述するということでしょうか ? つまり、コンパイル後のexeでは実行できるが デバック中では、値を渡しているところを確認できないということでしょうか?

関連するQ&A