• 締切済み

VB6.0からVB.NETへの移行について

現在、VB6.0で作られているシステムをVB.NETへ移行しようとしています。 そこでAcvtiveX EXEのGlobalMutiUseで作成されている画面を持つプロジェクトを移行する方法に困っています。 現状は、上記の画面が最初に起動されたら常駐して、定期的にサーバから情報を取得して内容を更新して、他の別プロジェクトの画面からその情報を取得して動いているような仕組みとなっています。 それを移行ガイドの通りクラスライブラリで作成して、他の別プロジェクトの画面から情報を取得しにいこうとすると新たに別のインスタンスが作成されて、それを見にいってしまうため情報が取得できません。 VB6.0のAcvtiveX EXEのGlobalMutiUseのように共有のインスタンスを他から見れるようにするにはどうしたらよいでしょうか?なるべく変更を少なくしたいと思っています。 よい解決策をご存知の方がおられましたら是非御教授をお願いいたします。

みんなの回答

  • shockatz
  • ベストアンサー率80% (153/191)
回答No.1

インスタンスが生成されるたびに処理化されるとまずいんであれば、 クラスプロパティや、いっそ静的クラスを使えばいいんと違います? クラス宣言したプロパティ・メソッド http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet32/vb6tonet32_02.html すいません。 VBでは静的クラスのを使えないようです。。

rina1109
質問者

お礼

回答ありがとうございます。 せっかく回答いただいたのですが、やりたいことが実現出来ないので、修正量は少し多くなってしまいますが、シリアル化とIPCを使用したリモーティングにて実現することにしました。

関連するQ&A

  • VB.NETでクラスライブラリプロジェクトがでてこない

    VB.NETスタンダードですが、DLLを作りたいのですが、新しいプロジェクトで「クラスライブラリプロジェクト」がでてきません。どうしてでしょうか? また、VB.NETで普通にDLLを作成するには、やはり「クラスライブラリプロジェクト」を開くしかないのでしょうか?

  • VB.netの設計

    JavaのSE経験5年、VBは開発3ヶ月未満のSEです。 ある汎用業務アプリを旧アプリ(VB6)から新アプリ(VB.net)に移行するプロジェクトに携わっています。 旧アプリは、ひとつのメニューExeから、各機能(画面)EXEをコマンドラインから呼び出す作りです。 例えば、こんな感じです。  携帯電話   →携帯電話メニュー画面.exe   →アドレス帳検索画面.exe   →アドレス帳登録画面,exe   →アドレス帳削除画面.exe   →Eメール履歴画面,exe   →Eメール送信画面.exe   →Eメール受信画面,exe 画面ごとにプロジェクトファイルがあり、出来上がりの納品の際は、Exeファイルが数十個出来るようなアプリケーションになっています。 しかし、コマンドラインでexeを実行する手法と、画面ごとにexeが出来る事に違和感を感じますし、 直接メニューを通さずに呼ばれることがない物にexeと言う拡張子がつく事にも違和感を感じます。 作りとして、EXEが沢山あるソリューションは正しいのでしょうか 正しくないとして、どうあるのが正しいのでしょうか よろしくお願いいたします。

  • VB5.0からVB6.0への移行について

    VB5.0からVB6.0への移行について プログラマー初心者です。 VB5.0で作成したプロジェクトを、VB6.0で開くと、 【'C:\...\marquee.ocx'を読み込めません。--プロジェクトのロードを続けますか?】と 【'C:\...\raocx32.dll'を読み込めません。--プロジェクトのロードを続けますか?】の メッセージが出力されます。 "marquee.ocx"と"raocx32.dll"は、ともにWebサイトよりダウンロードして、 'C:\WINDOWS\system32'に保管しましたが、認識しません。 コマンドプロンプトで、 'regsvr32 marquee.ocx'を実行させましたが、 【"marquee.ocx"は実行可能ファイルではないか、 またはこのファイルのヘルパが登録されていない可能性があります。】 というメッセージが出力されます。 "marquee.ocx"と"raocx32.dll"を読み込ませたいのですが、 方法を教えてください。 宜しくお願い致します。

  • vb.netでレジストリ操作

    現在vb.netでインストーラを作成しています。 (1)その中でexeファイルをレジストリに登録しようと考えています。 そのexeファイルを登録することはvb.netで可能でしょうか? (2)またアンインストールも同じプロジェクトで作成しようと考えているのですがそれも可能ですか? わかる方がいらしたら教えていただきたいと思います。 よろしくお願いします。

  • VBAからVB6への移行

    エクセルVBAでフォームを作成して使用していたものがあります。 諸般の事情でエクセルVBAからVB6sp6に移行することになりました。 エクセルVBAからフォーム、クラス、標準モジュールをエクスポートして、VB6のプロジェクトへインポートしました。 エクセルVBA上でフォームだったものがVB6ではデザインに変わりました。 これをVB6のフォームにしたいと思い、VB6でフォームを新規作成してデザインのフォームから各コントロール(ボタン等)をコピーペーストしようとしたところ、できませんでした。 1.フォームをVB6で作り直すしか方法が無いのでしょうか。 2.どのような理由でコピーペーストができなくなっているのでしょうか。 よろしくお願いします。

  • VB.NETでActiveX(OCXファイル)作成

    VB6のプロジェクトファイルで作成したOCXファイルがございます。これをVB.NETに移行したいの ですが、アップグレードウィザードを使用しても同様のOCXファイルは作成できますか? また、プロジェクトを新規作成する方法を教えていただけませんか? 宜しくお願い致します。

  • VBでExe作成時に「C2.exeが見つかりません」エラー

    お世話になります。 VB6.0で作成したプロジェクトのEXEファイルを作ろうとすると、「C2.exeファイルが見つかりません」といったエラーが表示されて作成することができません。 以降、別のプロジェクトのEXEを作ろうとしても同様のエラーが出てしまいます。 VBを再インストールすると直るのですが、理由がわかりません。 どなたか対処法などご存知の方がいらっしゃいましたらご回答宜しくお願いします。

  • VB6.0からVB.Netへの移行時に

    現在、VB6.0からVB.netへの移行作業をしています。 VB.netでは、Sub_Mainに書かれた処理が終了すると、 アプリケーションも終了するという事がヘルプに書かれて いました。変更手順もありましたので、その通りに 表示したいフォームをスタートアップオブジェクトに指定し、フォームのLoadイベントからSub_Mainを呼び出すように変更しました。 が、エラーがでます。 「System.InvalidOperationException' のハンドルされていない例外が system.windows.forms.dll で発生しました。」 「追加情報 : 1 つのスレッド上で、2 つ目のメッセージ ループを開始できません。Application.RunDialog または Form.ShowDialog を代わりに使用してください。」 .netに触るのは初めてで、入門書と格闘してますが、 エラーの意味する事すらわかりません。 何が問題なのでしょうか? 新規にフォームを作成したものは、問題なく表示されたのですが、VB6.0から移行したものは表示すらできない情況です。

  • VB6.0exeから.NETのDLLを呼び出した場合の実行時エラー’429’について

    お世話になります。 環境はWindowsXPです。 現在、VB6.0のexeから.NETのDLLを使用する・・・というのをしています。 以下の手順を踏み、実行してみたのですがどうも上手く行きません。。。 (1).NETのDLLを作成 (2)COMとして利用するために、.NET 2003コマンドプロンプトから「regasm」コマンドにてレジストリに登録 (3)tlbexpコマンドで、タイプライブラリを作成 (4)VB6のプロジェクトから(3)を参照設定する (5)VB6から.NETクラスを生成し、呼び出す (6)プロジェクトをコンパイルし、exeを生成 この手順にて実行すると「実行時エラー'429'ACtiveXコンポーネントはオブジェクトを作成できません」という エラーメッセージが出てしまいます。 windows updateをしてみたり、VB6.0のランタイムをインストールしてみたりしたのですが、 どうもダメみたいで困っています。 解決方法などご存知の方がいらっしゃいましたら、 ご教授いただけると大変助かります。 よろしくお願いいたします。

  • VB.NETの配布に関して

    VB.NETのプログラムをやっと作ることが出来た初心者です。開発しているパソコンと実行したいパソコンが別なので、インストーラを作らなければならないんだろうなとは思うのですが、色々調べても良くわかりません。初心者向けの本には実行ファイルがあればそれだけで良いという風にも書いていますし、.NET Frameworkが必要だとかいうものもあったり、セットアッププロジェクトを作成するとあったりで、どのようにすれば良いかわかりません。 今までのVBの感覚でいくと、セットアッププロジェクトかな?と思って「新しいプロジェクトの追加」から「セットアッププロジェクトの選択」と言うところまではわかったのですが、そこから先がわかりません。 因みに自分が作成したプログラムは任意のファイルから必要なデータをエクセルに抜き出すというもので、ほかに必要なファイルは、それ用に作成したエクセルのシートとなります。 大変大雑把で分かり辛いと思いますがよろしくお願いします

専門家に質問してみよう