- ベストアンサー
vb6で異なるのプロジェクト間で、値を渡したい
VB6で、以下1~3のような画面を作成したとします。 1.プロジェクトA・ログイン画面フォーム 2.プロジェクトB・照会画面フォーム 3.プロジェクトC・登録画面フォーム まず、1を表示して、ログインして、 次に2や3の画面に、ログイン情報を渡してやりたいのですが、 どうすればよいでしょうか? 異なるプロジェクト間で値を渡せません。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
プロジェクトA,B,CをActiveX DLLとして作成すればメイン モジュールからそれらのコンポーネントを呼ぶだけですみ ます。 #変数の受渡しもプロパティを使用すれば可能。 プロジェクトグループにすれば、モジュール間のデータの 受渡し等の動作確認もできます。
その他の回答 (5)
- K-Sogacchi
- ベストアンサー率53% (50/93)
えと、まだ解決状態になっていないようなので、ついでに。 根本的なところで、「そもそもプロジェクトを分ける必要があるのか?」 という部分も考えてみた方がいいかもしれませんよ。
- NYOI
- ベストアンサー率58% (56/96)
>つまり、コンパイル後のexeでは実行できるが >デバック中では、値を渡しているところを確認できないということでしょうか? No.1で書いた参考URLの一番最初に、デバック中に値を渡しているところを確認する方法が書かれております。
お礼
コマンドラインでうまくいきました。 しかし、ActiveX DLLを使用することに決まりました。 ありがとうございました。
各種情報を構造体変数に代入して排出。 構造体変数を呼び込んで破棄。 この間、0.001秒もあれば十分。 で、で、どうしても解読不能にしたければする。 常駐して監視するアプリケーションを用意してもOK。 が、構造体変数を読み書きするのが一番簡単と私は思います。
お礼
構造体変数については、後日勉強します。 ありがとうございました。
- K-Sogacchi
- ベストアンサー率53% (50/93)
セキュリティ等について問題が無ければ、NYOI氏が書かれた方法が 一番楽でしょう。 但し、単なるコマンドラインでの引渡しなので、「ファイル名を指定して実行」等で 1が他の起動に使う文字列と同じ文字列を入力して起動すれば、 1通さなくても他が起動出来てしまいます。 それが嫌なら、何らかの方法でアプリケーション間通信を行うしかないでしょう。 「visualbasic6 アプリケーション間通信」でググったら色々出てきましたが、方法として ・SendMessage ・DDE ・OLEオートメーション とかがあるようです。 SendMessageを使った処理のサンプルが載っているページを参考として貼っておきます。 多少面倒そうだけど。
お礼
コマンドラインでうまくいきました。 しかし、ActiveX DLLを使用することに決まりました。 ありがとうございました。
- NYOI
- ベストアンサー率58% (56/96)
BとCはAから呼び出すのでしょうか? それならばコマンドライン引数を利用してみてはいかがでしょう。
補足
コマンドラインを使用するということは、 Aファームに、 Dim RetVal RetVal = Shell("C:\フォルダB\B.exe xx") と記述するということでしょうか ? つまり、コンパイル後のexeでは実行できるが デバック中では、値を渡しているところを確認できないということでしょうか?
お礼
ActiveX DLLでうまくいきました。 ありがとうございました。
補足
ActiveX DLLでうまくいきました。 ありがとうございました。