• ベストアンサー

VB2で作成したプログラムをWin2000で使用

仕事の都合なのですが、ずいぶん昔に作成したプログラム(VB2で作成)が Windows2000 Professionalで起動するかどうかを確認することになりました。 動かしていると、「Grid.vbxがロードできない」という内容のエラーが出ました。 Gridは"winnt\system\"に入っています。ここにない場合は「Gridがない」というメッセージが表示されていたので、 ファイルの存在は認識しているのだと思われます。 以上の状況から、次の2点を教えてください。 (1)ロードできない原因 (2)このエラーを回避できるのか否か よろしくお願いいたします。

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

  • ベストアンサー
  • itohh
  • ベストアンサー率45% (210/459)
回答No.2

こんにちは。itohhといいます。 不確かなことばかりで申し訳ありません。 >OSが32ビットだと16ビットのコントロールは動かないかもしれない、 >ということでいいのでしょうか。 そのとおりです。 また、grid.vbxをどこからかコピーしてきても対応するDLLがなくてはいけません。 基本的にWindows2000上では16ビットのDLLは動作しないと思ってください。 VB6.0でビルドすることをお勧めします。ただし、修正しないとビルド出来ないと 思われます。

その他の回答 (1)

  • itohh
  • ベストアンサー率45% (210/459)
回答No.1

こんにちは。itohhといいます。 わたしは、VB2.0のアプリケーションをWindows2000上で動作させようとしたことがないので 確かなことは言えないのですが。 Windows2000上では、VB2.0で開発した16ビットアプリケーションは動作しない可能性があります。 vbxファイルは、16ビットコントロールなので32ビットコントロールのocxファイルに 置き換えなければいけないと思います。 動作させるとしたらば、VB6.0でビルドしなおせば良いかもしれません。この場合、ある程度のソース の修正が発生することを覚悟しなければいけないと思います。 参考になるマイクロソフトのページを載せておきますので一度覗いてみてください。 ・Visual Basic の旧バージョンのコントロールのアップデート URL:http://www.microsoft.com/JAPAN/developer/library/VBCon98/vbconupdatingolderversionsofvisualbasiccontrols.htm

参考URL:
http://www.microsoft.com/JAPAN/developer/library/VBCon98/vbconupdatingolderversionsofvisualbasiccontrols.htm
puntoabart
質問者

お礼

ご回答いただき、ありがとうございます。 VBXは16ビット用、OCXは32ビット用という話は聞いたことがあります。 OSが32ビットだと16ビットのコントロールは動かないかもしれない、ということでいいのでしょうか。

関連するQ&A

  • 【VB2005】で作成したプログラムが新しいPCで起動できない

    OSがMicrosoft WindowsXp Professional2002(SP2)でVB2005の プログラムを作成し、問題なく使用できていたのですが、新しいパソコン(Microsoft WindowsXp Professional2002(SP3))にプログラムを コピーして実行しようとすると「Applicationエラー」が発生してしまいます。フレームワークは「Microsoft Frame work .NET 2.0(SP1)を使用しています) 原因をご存じの方、教えていただけないでしょうか? 何とぞよろしくお願いします。

  • VB6のプログラムをWIN7で使いたい

    OSをXpからWIN7に移行しなければならなくなり、環境移行のテストをしています。 VB6で組まれた業務用プログラムがあり、現在Xpで動作しています。 このプログラム自体はWIN97の時代に作成されたものです。 簡単に説明しますと、データがAccessのデータベースにあり、それを使って技術計算をするプログラムです。 WIN97に入れると、セットアップは成功するのですが、Accessとデータをやり取りする部分でエラーが起きているようです。 そもそも、VB6自体がWIN7にはセットアップできないようで、再コンパイルできません(再コンパイルで動くかどうかも不明ですが)。 WIN7上で動かす良い方法がないでしょうか。

  • ソースファイルを追加すると、プログラムが動かなくなる。

    こんにちは。 VC++6.0を使い、先輩が作ったプログラム(デバッグ済み、実行の確認済み)に、 "Beep(400,100)"を追加して、リビルドを行った。 リビルドがうまくいったが、実行が全くできなかった。(途中でPCがハングアップしたようです。ウィンドの"×"をクリックすると、"プログラムが応答していません"とのメッセージBOXが表示された。) デバッグウィンドに下記のメッセージが書かれました。 D:\USB\確認用\LI01Check\Release\LI01Check.exe' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\System32\ntdll.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\system32\WinRTUSB.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\system32\kernel32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\system32\user32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\system32\gdi32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\system32\imm32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\system32\MFC42LOC.DLL' をロードしました、合致するシンボル情報は見つかりませんでした。 私は、VC++がなので、ぜんぜんわかりません。よろしくお願いします。同じプログラムがうまく実行できた事もある。ただ、一度エラーが出ると、修正前のプログラムも実行できなくなる。 (エラーリストにリストアップされているdllファイルの存在も確認してあります。) 初心者なので、よろしく、お願いします。

  • VB6.0開発ソフトインストールできません

    VB6.0でデータベース(SQLSERVER7.0)をアクセスする プログラムを作りました。 そのプログラムをVB6.0が インストールしていない他のパソコンでも 動かしたいので ディストリビューション ウィザードで setup.exeを作り 他のパソコンにセットアップしようとしたら 「ファイルC:\WINNT\SYSTEM32\msado21.tlbの 登録中にエラーが発生しました」と 表示されセットアップできません。 なおセットアップのログファイルを見ると エラーC:\WINNT\SYSTEM32\msado21.tlb中に DLLRegisterSerer()のエントリポイントが 見つかりません。 次の処理中:DllSelfRegister: "C:\WINNT\SYSTEM32\msado21.tlb" とありました。 セットアップでき、実行できるようにするには どのようにしたら良いですか? もちろんexeファイルをコピーし 他のパソコンにいれても実行されません。 エラーメッセージは 実行時エラー430 クラスはオートメーションまたは予測したインターフエースをサポートして  いません

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

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

  • WebBrowserがロードできない(VB6)

    VB新人です。 VB6でシステムを開発してます、 VBを起動したところ以下のようなメッセージが表示します。 何かOCXなどを参照していないのでしょうか? どうすればエラーが無くなるのでしょうか? 突然出て、悩んでいます。 クラス SHDocVwCtl.WebBrowser(コントロール www) はロードされていません。 よろしくお願いします。

  • VB6のプログラムをVS2017で開くには?

    VB6や、VC++で作成されたプログラムを VisualStduio2017へ移行することになりました。 VisualStduio2017で、VB6やVC++のプロジェクトを開いて コンパイルエラーになる部分を手修正していこうと思ったのですが、 そもそも開くことができません。 新たにプロジェクトを作成して、ソースコピーをして貼り付けし、 コンパイルエラーになる部分を手修正するようなやり方ぐらいしかないでしょうか?

  • VB6.0での%windir%アクセス方法

    Windows2000とWindowsXPの端末で使用するツールをVB6.0で作成しています。 プログラムですが、  Windows2000の場合であればc:\winnt、  WindowsXPの場合であればc:\windowsの ディレクトリに保存しているファイルを参照し、 そのファイルをいじくる流れになります。 Winntフォルダやwindowsフォルダという情報は、コマンドプロンプトであれば%windir%で勝手にOSの種類から認識/判別してくれるのですが、 これがVBでは認識しません・・・。 どのようにすれば、VBで%windir%を認識/判別することができるのでしょうか??? なんか説明が上手くないのですが、意味、分かりますでしょうか?? ヨロシクお願い致します。

  • VB.NETで作ったプログラムがサーバー上で実行できない

    いつもお世話になっております。 標題の件なのですが、VB.NETで作ったプログラムをサーバーに置いて、 ネットワークごしに実行するとエラーが出てしまいます。 エラーの内容は「system.security.permissions.securitypermission」です。 プログラムの内容は、 (1)XMLファイルを読み取る。 (2)ADOでOracleに接続し、ストアドを実行する。 (3)Oracleからデータを取得し、Excelを出力する。 といった感じです。 エラー内容的にセキュリティの問題だと思うのですが、回避策がございましたら、 ご教授願います。

  • VBで作成した、プログラムについて

    VBで作成した、プログラムについて VBで作成したプログラムをCで作り直したいです。 ソース(フォーム1ロードから、エンドクラスまで)を下記に記載しておきますので、疑問に答えていただけませんか。 ソース: Dim hensu(3, 4) As Integer Dim goukei, i, j As Integer hensu(0, 0) = 20 hensu(0, 1) = 70 hensu(0, 2) = 60 hensu(0, 3) = 30 hensu(0, 4) = 40 hensu(1, 0) = 30 hensu(1, 1) = 50 hensu(1, 2) = 30 hensu(1, 3) = 90 hensu(1, 4) = 40 hensu(2, 0) = 90 hensu(2, 1) = 20 hensu(2, 2) = 80 hensu(2, 3) = 60 hensu(2, 4) = 20 hensu(3, 0) = 40 hensu(3, 1) = 30 hensu(3, 2) = 30 hensu(3, 3) = 60 hensu(3, 4) = 30 label1.text="" For j = 0 to 4 goukei=0 For i = 1 to 3 goukei = goukei + hensu(i, j) Next label1.text=label1.text & goukei & "," Next End Sub End Class 疑問1 forループの部分は、for(j=0; j<5; j++) { } と、 for(i=1; j<4; j++) { } でいいでしょうか。 疑問2 goukei = goukei + hensu(i,j) はどのように記載すれば、よいでしょうか? 疑問3 label1.text=label1.text & goukei & "," の部分は、どのように記載すればよいでしょうか? 疑問4 hensu(0, 0)=20・・・hensu(3, 4)=30 はどう記載すればよいでしょうか? くだらないかもしれませんが、お早めによろしくお願いします。