• 締切済み

VB6.0⇒VB2008のコンバートについて

ある端末でVB6.0のプログラムをVB2008へコンバートしました。 その後、別のVB6.0がインストールされていない端末でプログラムを実行しようとしたところ、"COMExceptionはハンドルされませんでした。"とエラーが発生しました。 上記のコンバートしたプログラムではソケット通信でwinsockを利用していました。 そのためプログラムを修正して、winsockを利用しないようにしたところ、エラーがなく実行できました。 おそらく、VB6.0がインストールされていない事が原因だと思うのですが、いまいちわかりません。 どなたかご教授お願いします。

みんなの回答

回答No.1

すでにお気づきかと思いますが、VB 6.0 のソースを .NET な Visual Studio でコンバートしても純粋な .NET アプリケーションにはならず、アプリの機能のほとんどは VB 6.0 のときに使用していた部品を使用します。(今回のケースでいうところの Microsoft Winsock Control 6.0 とか) 開発ツールとしての VB 6.0 をインストールした PC、 上記 PC で開発したアプリをインストーラ形式で配布され、それをインストールした PC これらは VB 6.0 や VB 6.0 のランタイムによって提供される各種コントロールがシステムに登録された状態です。 これらの PC 上で実行した VB 6.0 からコンバートされた .NET なアプリは Microsoft Winsock Control 6.0 がシステムに入っていることを期待して動作しているのではないでしょうか。 開発ツールの VB 6.0 やそのランタイムが登録されていない PC で、VB 6.0 からコンバートされた .NET なアプリを実行しても、アプリが期待している Microsoft Winsock Control 6.0 がシステムに登録されていないため COMException が発生したのではないかと考えられます。 蛇足になりますが、今回コンバートして生成されたアプリは VB 6.0 ランタイムと決別できていませんので、VB 6.0 アプリの仕様書をもとにして .NET にてゼロから作成したほうが今後のためには良いと思います。 じゃないと新規 PC に .NET アプリのインストールをするたびに VB 6.0 ランタイムもインストールし続けることになります。

関連するQ&A

  • VB(Windows)からUNIXマシンのプログラムを起動?

    ソケット通信のアプリを作りたいのですが、よろしかったらご指導ください。 VB(Windows)からUNIXマシンのプログラムを起動するにはどうすれば良いのでしょうか。 WinSockを使ったサンプルソースが見れるサイトを知っていたら教えてください。 また良い書籍などあれば教えてください。

  • VBのソケット通信(winsock)のサイト

    VBでwinsockコントロールを使ってソケット通信にて、データの送受信をするプログラミングをするのですが、サンプルコードなどが載っているサイト、わかりやすく説明してあるサイトがありましたら教えてください。

  • ACtiveXコンポーネントはオブジェクトを作成できません(つづき)

    OS:windowsXP(windows update 未処理) VB:VB6.0sp5 首記のエラーが発生し「OSをシャットダウンさせるシステム」が正常に動作いたしません OSをシャットダウンさせるプログラムを作成し、 ディストリビーション ウィザードにてSetup.exeを作成いたしました VB6.0をインストールしている端末にて OSシャットダウンプログラムのSetup.exeを実行しインストールし、 OSシャットダウンプログラム(exe)を実行するとシャットダウンする のですが、 VB6.0をインストールしていない端末にて OSシャットダウンプログラムのSetup.exeを実行しインストールし、 OSシャットダウンプログラム(exe)を実行すると  上記のエラーが発生しシャットダウンできません どのようにすれば良いのでしょうか?

  • Winsockを使わずにVBでSocketを利用したい

    Winsockを使わずにVBでSocketを利用したいと考えています.事情がありましてコンポーネントを使わずにSocket通信でサーバープログラムと通信を行いたいです. APIなどでSocket関係の関数は用意されているのでしょうか? 宜しくお願いします. OS:Windows2000+SP4 Visual Basic 6.0+SP5

  • VB6‥ソケットについて

    MS-VB6 SP6 を使って作業をしております。 Winsock を使って、複数のユーザー対応のチャットを 作成していまして…複数接続を行うために ソケットを使おうと考えております。 …しかしネットやヘルプで調べましたが、よくわかりません ソケットの作成方法・利用方法や実際のサンプル… などありましたら、教えてください。 また、他にもネットワークを介してのアプリケーション 開発において、アドバイスなどありましたら そちらの方もお願い致します。 P.S.  Winsock のプロトコルは、TCPを使用しています。

  • VBがデバッグ時落ちてしまう

    VC6.0でDLLを作成し、VB6.0で呼び出すプログラムを作成しています。 DLLの内容はWindowハンドルを引数にしてそのハンドルを持つWindow上にListboxを作成するというようなものです。(もともとC言語用のDLLだったものをVBで使いまわしています) このプログラムをデバッグ実行し、デバッガ上で停止[実行->終了]とすると、VB6.exeがアプリケーションエラーで落ちてしまいます。(DLLの関数を呼ばない限り大丈夫です) デバッグ実行でも普通に終了(アプリケーションでの終了)であれば正常に終了してくれます。 このままですと、実行時エラーで止まる度にVB6.exeが落ちてしまい非常に不便です。 このような現象で困った方いませんか? 解決策がありましたら教えてください。

  • VBが動かなくなりました・・・

    こんにちわ. OS windows2000 professional VB ver6.0を使用しています。 どのタイミングかはちょっと分からないんですけど、 VBを開くと“システムレジストリにアクセスする時にエラーが発生しました”というエラーがでてプログラムがひらけません。 exeを書き込む事もできません・・・ VBの再インストールをしてみたのですがやはり同じです。 何か対策方法はないでしょうか? 最悪OSの再インストールしか方法は無いのでしょうか? すいませんが宜しくお願い致します。

  • VB.netについて質問です。(2つ)

    まず、コンパイルのやり方がわかりません。 VB6.0を今まで学習していました。VB6.0だったら、 メニューバー→実行ファイル作成(*.exe) …で、できたのですがVB.netにはなかったです。 MSDNを拝見したら、コマンドから コンパイルするような事が記載されていたんですが 見ながらやっても、さっぱりです。 実際の具体例を教えていただけないでしょうか? VB6.0の場合、ネットワーク通信を行う際… Winsockというオブジェクトを使って通信を行いましたが VB.netの場合、どのオブジェクトが該当するのでしょうか? インストールした段階なので、標準のオブジェクトに 無い場合は、コンポーネントからインポート(?)するような 方法も教えてください。 よろしくお願いします。(^^)

  • winsockでソケット通信の開発をしていますが、

    winsockでソケット通信の開発をしていますが、 send()を5回実行したところで10053のエラーが起きてしまいます。 必ず同じところでエラーになってしまうのですが、 同じ症状になってしまった方いらっしゃられないでしょうか?

  • VB.NET Frameworkインストールの件

    VBでEXEを作成し、他の端末で実行したのですが、 「アプリケーションを正しく初期化できませんでした(0xc0000135)」や 「mscoree.dll」が見つかりませんというエラーが発生しました。 インターネットで検索し、 Microsoft .NET Framework Runtime を入れて解決しました。 ただ、Microsoft .NET Framework Runtimeを入れる際、 インストールファイルをダウンロードするのはともかく、 インストール中にもインターネットに接続しているようです。 そのため、インターネット環境が整っていないと Microsoft .NET Framework Runtime が入れられず、 EXEが実行できません。 インターネット環境が整っていない端末でEXEを実行する環境に するには何かいい方法はないでしょうか? よろしくお願いします。 VB:Visual Studio 2008 Express Edition 端末:Windows XP,Microsoft .NET Framework 3.5

専門家に質問してみよう