• ベストアンサー

32ビット用Visual Basic 4.0ソフト

 いつも、解答いただきありがとうございます。  Windows8.1、NEC lavie 64ビットのノートパソコンを使用しています。  従来は、WindowsXP 32ビットマシーンを使用していました。  LETSCLIPと言うクリップのユーティリティプログラムを使用しています。  プログラム内部で、VB4.0 Visual Basic 4.0を使用しています。マイクロソフトがサポートを終了していることを知っています。だからと言って使用できる範囲で使用することは、問題ないでしょう。動かなくなっても保証の限りで無いというだけです。  64ビットの機械は、32ビットの上位互換があり、基本的には、32ビットのソフトも動くはずです。  VB4.0 Visual Basic 4.0で必要になるライブラリーファイルを C:\Windows\system32\ のフォルダに全て入れています。それなのに  Windows8.1の元で、インストールしようとすると、 VB4.0 Visual Basic 4.0のライブラリーを引っ張ってこようとして、ここで、 VB4.0 Visual Basic 4.0のライブラリーを見つけることが出来ませんのエラーが出ます。 ●(Q01)C:\Windows\system32\のフォルダの中にライブラリを入れておけば、どこのフォルダから実行しても、 最初の起動時にパスが切られているので、指定のライブラリファイルは、参照できるはずでは、無いのでしょうか? ●(Q02) もし、それでも、参照できないと言うのであれば、起動したフォルダの中にライブラリをコピーして入れれば、インストール時と実行時にライブラリを参照して正しく実行できるのでしょうか?  LETSCLIPと言うプログラムが、今では、ほとんどどこにも登録されてなく、サポートも終了していて64ビット版のプログラムを作り直してもらうことが困難なのです。  32ビットバージョンのプログラムは、多く、64ビットバージョンに作り直されているようです。 ●(Q03) しかし、そのままのプログラムで、64ビットマシーンで動く場合も有るようです。これは、64ビットの機械が32ビットの上位互換で作られているせいでしょうか?  敬具

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

  • ベストアンサー
noname#228894
noname#228894
回答No.3

それはクリップボードを複数持てるようにするってものですよね?であれば、いまどきなOSに対応したソフトに乗り換えることを検討すべきでしょう。以下のように複数のものが出回っている状況で、古いフリーソフトにこだわり続けるのもどうかと思います。 http://s.freesoft-100.com/pasokon/clipboard.html なお32bit版のWindows8ならば、古いWin16アプリ(Windows16と言うことではなく古典的な16bitのWindows3.1アプリと言う意味)でも動作することになっています。 64bit環境ではWOW64と言う機構により、32bitアプリの互換性を保っています。さすがにドライバやセキュリティ対策ソフトみたいなのを動かすのは無理ですが、一般アプリはほとんど動きますね。

mhd02556
質問者

お礼

 randensai2さん、そして、みなさん、こんにちは、いつも回答ありがとうございます。  多数のフリーソフトを紹介いただきありがとうございます。  参考にさせていだきました。どのプログラムが良いのか?  どう使うのか皆目見当がつきませんが、現在使用と類似していて使用しやすいもの信頼性の厚いソフトを選択したい。  まずは、評価の高いソフトを選びます。  印刷して勉強を始めました。  敬具

その他の回答 (3)

  • parts
  • ベストアンサー率62% (6364/10149)
回答No.4

当該アプリケーションは、スナップショット関連のソフトでしょうか?それなら、Vista以降では厳しいでしょう。8で動く可能性は限りなく0に近いです。その理由は、後述しますけど、GDIリソース管理がもう原則としてないからです。 VB4.0系のアプリケーションは、WindowsXPでは確かに動く物も多いですけど、Vista以降の環境では32bit環境でも動かないものが多いですよ。理由は、管理者権限という概念がVB4.0/5.0以前にはないことと、そもそも同じWindowsでも中身が違うからです。VB6.0/.Netでもかなり苦しいといえます。 Q01については、System32にライブラリを入れてもHALとユーザーサービスやカーネルへの接続パスがなければ動作しません。当該プログラムはたぶん良くてWin32 VMベース、悪ければWin16 VMでしょうから、今まで動いていたのが幸運です。 Q02については、当該プログラム及びライブラリが相対パスか絶対パス設定かによります。元々絶対パスとしてsystem32を参照しているなら、プログラムグループの保存先においても意味はないでしょう。 Q03については、説明が難しいのですが、まずWindowsXPがVB4.0のアプリケーションライブラリをどのように参照するかという点から説明します。 WindowsXPでは基本的にVB4.0のライブラリを全てサポートしているとは言えません。これは、Windows9xとNT4.0までの製品をサポートしています。 そのため、厳密にはVB6.0以前なら動かないケースがあるのです。それに、32bitや16bitのコードというのは正確に言えば関係ありません。動かない物はどうやっても動かないと思ってください。ただ、それでは古いソフトは皆動かなくなります。文句を言われるでしょう。そこで、多少古い製品は動かせるように、エミュレーターのような機能で動かしているケースがあります。 では、動かないはずのソフトが何故動くのかというと、NTVDMとAppFixを介して仮想的にWin95またはWinNT4.0の環境を作るためです。要は、仮想的に9xやNT4.0のHAL(ハードウェアとOSまたはアプリケーションソフトウェアの間でデータの仲介をする機能)を生み出すのです。 XPでは、まだWindowsNT4.0が持っていた純粋なNTDOSのアーキテクチャを継承しており、その上にLunaデスクトップと、GDI/GDI+を実装していました。そのため、当該のアプリケーションは動くだけの機能がまだ生きていました。 当該のアプリケーションは調べた限りでは、たぶんGDIリソースを利用するアプリケーションと思われますが、純粋に同じGDIリソースを搭載するのはNT4.0とMEまでなのです。Windows2000以降では、GDI単体での動作はレガシー(遺産)となり、GDI+を拡張として実装した強化版となりました。この頃既にGDIはVB4.0が使われていた頃より進化していたのです。 そして、これらの管理をする場所へのアクセス権は、XP以降多くのセキュリティ脆弱性が見つかったことで、Vistaより後のバージョンにおいて、UAC(ユーザーアクセスコントロール)の制御化に置かれるようになりました。UACはセキュリティ上重要なコンポーネントへの参照や書き込みなどの権限を利用する際に、メッセージを表示するようになったのです。 Windows7ではそれが強化され、一部のコアへのアクセスはユーザーの認証の産むにかかわらず無効化されます。そして何より、Windows7以降はDirect Writeと呼ばれる機能でGDIは置き換えられました。(GDI+はレガシーとして一応生きていたが、VB6以前のコマンドのパスはほとんどが排除され、一部AIKリソースのみ生き残りました。) ちなみに、Windows8系ではアクセス権をWindows7以上に強化し、NX-BitやSSE2もCPUに求めるなど、9x時代のリソースは全部削ぎ落としています。要は、GDIはもうありません。 そのため、それを利用するコンポーネントは、全て不正なコンポーネントや、不正なプログラムとして認識するようになったのです。 いかがでしょうか? 簡単に言えば、32bitだから動くのではありません。凄く端的に言えば、ローカル鉄道がVB4.0では使われていた、WindowsXPでは、そのローカル鉄道を高速化したり、線路を増やす処理がされた。しかし、それでは線路がもう持たない。修理して広げるにも安全性も十分に確保できない。これからもっと輸送は増えそうだとなった、そこでより安全で高速な別の路線(新幹線に対するリニアのようなもの)を作ったのです。そして、古い線は一定の時間を持って廃止された。と考えてください。 そんな状況で、古い切符の購入して乗りたがるのが、質問者様が動かそうとしているアプリケーションだと思ってください。切符に値するのが、当該のモジュール(COMまたはOCXかDLLライブラリかな?)です。そのモジュールもHALやKernelの仕様が変わっていれば、利用できませんから・・・。 まあ、Vistaの32bit辺りならAppfix(プログラムの互換性ウィザード)で使える可能性はまだあるかもしれませんが、7の32bitで動くかどうかは微妙です。

mhd02556
質問者

お礼

 partsさん、そして、みなさん、こんにちは、いつも回答ありがとうございます。  専門的な解説ありがとうございます。  詳しくは、分かりにくかったですが、今後研究して行きたいと思います。  サポートもできないとの開発者の答えなので、別のプログラムを探そうと考えています。  上位互換でできるはずだとの考えが甘いと分かりました。  皆具

  • yama1718
  • ベストアンサー率41% (670/1618)
回答No.2

多分前の方の回答の通りでしょう、VB4は32bit版を使っていますと答えられると思いますが、VB4ではまだ32bit版でも、まだ16bitがサポートされていたのに甘えて内部的に16bit版のコードやAPIを使っている部分が残っているそうです。 完全に32bit化したのは確かVB5.0かVB6.0ぐらいからです、それでもWin7でも実行するのに一部支障があるそうですから。 上位互換と言っても実行コード(機械語)だけでは不十分で、WindowsのAPIなどのシステムも伴わないと、Windowsに関してはマイクロソフトは完全に上位互換とは言っていません、実際に時代遅れのAPIは廃止されたり新しいAPIに変わっていますから。 上位互換と言っても、新しいVBでのソースレベルの互換であったり、新しく変わった部分などはソースの変換でも上手くできずに手作業による移植作業が必要だったりします。 その為にWin7では古いソフトをより確実に実行させる手段としてXPモードという仮想環境まで提供していましたが、Win8ではもうサポートしていません。 http://answers.microsoft.com/ja-jp/windows/forum/windows_8-winapps/windows-8-%E3%81%A7-xp/faf457b0-6234-4023-ad4f-54d6d8a09c28?auth=1 どうしても古いソフトをそのまま実行したかったら、VirtualBOXやVMwareなどの他の仮想環境で動かすのが手っ取り早いでしょう。

mhd02556
質問者

お礼

 yama1718さん、そして、みなさん、こんにちは、いつも回答ありがとうございます。  詳しい解説ありがとうございます。  やはり、新しいソフトを導入しようと考えています。  敬具

  • Eureka_
  • ベストアンサー率41% (5065/12243)
回答No.1

そのアプリは知らないですが、64ビットWindowsは16ビットWindowsプログラムの実行ができません。 そのアプリが必要とするVB4.0ランタイムの中に16ビット版のものが存在するなら、そのアプリは64ビットWindowsでは実行できないということになりますが…

mhd02556
質問者

お礼

 Eureka_さん、そして、みなさん、こんにちは、いつも回答ありがとうございます。  VB4.0ランタイムの中に16ビット版のものが存在  するらしいので、もはや、互換性が無いようですね。  新しいソフトを探すのが良いなと思いました。  作者に聞きましたが、もはや、開発環境が無いとの事です。

関連するQ&A

  • 64ビットでのビジュアルスタイルについて

    ビジュアルスタイルについてなのですが、 64ビット用にビルドして実行しようとすると起動ができないのですが、 原因が分かりません。 http://msdn.microsoft.com/ja-jp/library/ms997646.aspx と同じようにして、64ビットは「x86」を「ia64」にしないといけないようなので 変更したのですが、実行できませんでした。 ちなみに、32ビット用はできます。 どうすれば、できるのでしょうか? エラー内容は、 アプリケーション構成が正しくないため、このアプリケーションの開始に失敗しました。 マニフェストファイルを参照してエラーの原因を調べてください。・・・ と書かれています。 開発環境は、Windows7 64bit、Visual C++ 2010 Expressで、 Microsoft Windows SDK v7.1を入れて64ビット開発が出来るようにしています。 言語はC/C++でWindowsAPIです。

  • VB2.0で作られたプログラムは64ビットの

    VB2.0で作られたプログラム(かなり古いです)は64ビットのウインドウズパソコンでは実行できないのでしょうか。 今まで32ビットのVISTA上では実行できていましたが、新しく買ったwin7(64ビット)では実行されません。 なぜか教えていただけたらうれしいです。

  • visual basicについて

    最新のVisual BasicをDLしました。DL先フォルダには 1041, Common7, Microsoft visual basic express edition-JPN , MSDN express library,SDK,VB,VC,xmlというフォルダとインストーラがあります。 肝心のVisual Basicはどこにあるのか分かりません。。。一通り見てみたのですが、どこか他の場所にインストールされたのでしょうか?

  • VB40032.DLLについて

    あるプログラムを実行するにあたり下記のような文が掲載してありました。 「このプログラムを実行するためにはVB40032.DLL(ビジュアルベーシックのダイナミックリンクライブラリー)が必要です。 あらかじめインストールされているパソコンではその場で実行できます。 実行してみて「DLLが見つかりません」等のエラーが出た場合は以下の操作を行ってください。 VB40032.DLLをダウンロードし¥WINDOWS\system32フォルダへ(このフォルダーがない場合は¥WINDOWS\systemフォルダ)に保存します。」 実際に¥WINDOWS\system32フォルダに保存しようとしたら「この場所に保存するアクセス許可がありません。管理者に連絡してアクセス許可を取得してください。」というメッセージになりました。ちなみにOSはWindows7です。 どうすればよろしいでしょうか?

  • Visual Basic 6.0 の WebBrowser コントロー

    Visual Basic 6.0 の WebBrowser コントロールが使えなくなり困っています。 WindowsXpマシンで、VB6でプログラムを作っています。プログラムにはコンポーネント追加で加えたWebBrowser コントロールを使っています。 今年の3月頃まではIE6を使っており、問題なく使えていました。4月14日になってやってみるとWebBrowser1.Navigateが使えないというメッセージがでます。このためプログラムを修正できなくなりました。以前、コンパイルしていたEXEプログラムは動きます。 3月末頃にIE8にしたのが悪かったかと思って、IE6の別のパソコンでやってみたのですが同じメッセージでVB6で作ったプログラム内のwebブラウザが使えません。 「Visual Basic 2005 では Windows フォームの WebBrowser コントロールに置き換えられています。」という案内を見つけましたが、Visual Basic 2005に変えたつもりはありません。 読んでも(頭が固いようで)どうしたら良いのか分かりません。

  • Visual Auction について

    お尋ねします。 個人出品のヤフーオークションからIDをそのままにしてストアに切り替えました。出品しようとしたところ、出品方法もいままでと違うという事に初めて気がつきました。そこで色々と調べて、どうせなら、他のソフトを使ってみようと思い、Visual Auction のフリー版をインストールしてみました。 ところが「実行時エラー339」と出て何も出来ません。マニュアルに「ランタイムライブラリはインストールしましたか」と出ており、また「動作にはVB6SP5以上のランタイム等が必要です」とも出ております。このランタイムライブラリとはなんでしょうか?どのようにインストールしたらよいのでしょうか?OSはWIN XPです。またこの「Visual Auction」の分かりやすい使用方法記載の本など、発売されているのでしょうか?どうか宜しくお願い申し上げます。

  • [Visual C#] 音声認識について

    VB.NETで音声認識(その1:音声認識ライブラリを作る) http://kilala.mydns.jp/def/VBTIPS/005/ マイクにしゃべるとテキスト変換されるプログラムです。 これはVB.NETで作られています。これのVisual C#版の サンプルプログラムがある場所を知りませんか?また 書き方を知りませんか? 色々な検索ワードをgoogleで探して見たのですが全然ヒット しませんでした。 SpeechLib(音声認識ライブラリ)はインポート可能でしたので 出来ると思うのですが、書き方が分かりません。 よろしくお願いします。

  • Visual Basic.NET について

    PLC(シーケンサー)のビットメモリ及び、ワードメモリの内容をPC(パソコン)に取り込みたいと考えています。 Visual Basic.NET を使用してイーサーネットで取り込もうと考えていますが、Visual Basic.NET も初心者であり、具体的にどうすれば良いか分かりません。 何か参考になる資料を教えてください。 PLCは 三菱Qシリーズです。 宜しくお願いします

  • Accessの32bit 64bit 互換について

    Accessの32bit 64bit 互換について お世話になっております。 access 2003(32ビット版)OS:WIndowsxpで作成されたファイル (他社作成プログラムの為、プログラムの内容は不明です)を access 2010(64ビット版)OS:windows7のインストールされている環境で、 参照または、実行できるのでしょうか? 特定プログラムだけか解りませんが、動作しない報告を受けています。 (すいません、対象の環境が手元にありません。) 調査方法や対処方法など教えて頂ければ助かります。 すいません、よろしくお願い致します。

  • 実行時のエラー。動作環境の確保

    複数の機械(PC-9821 V12;Win95; FMV S3 20;Win95, FMV ME3/505;Win98SE, DELL XPS R450;Win98SE, Aptiva573;Win98, Gateway G6-200;Win95)で実行状況を見ています(Win2000は使えなくなった)。 開発は ME3/505 で行い他の機械で動くかどうかを調べています。 参照設定は Visual Basic For Application Visual Basic runtime object and peocedures Visual Basic object and procedures OLE automation の4つです。 バージョンは Microsoft Visual Basic 6.0(SP5) For 62-bit Windows Development です。 現時点で配布可能な形体にする方法が分からないので RedHouse氏のVisual Basic 6.0 SP5 ランタイムライブラリ http://www.vector.co.jp/soft/win95/util/se188840.html を使用しています。 先に書きました通り、ADO, DAOは使用していません。使い方がわかりません(下記参照)。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=683267 しかし.なぜか. 実行時エラー '429' ActiveXコンポーネットはオブシェクトを作成できません。 が発生します。 すべての機械にVisual Studio をインストールすればよいかもしれません(使用者・所有者がすべて同一人物ですから法律上の問題はないでしょう)が、言語を取り扱う機械は通信回線を切断しておきたい(ウイルス対策)のです。 Visual Studioを導入することなく、すべての機械でEXEファイルコピーだけで動作するようにするには、どのようなことをしたらよいのでしょうか。 なお MDAC 2.7 SP1(下記回答内参照アドレスよりDl)を実行しましたが http://oshiete1.goo.ne.jp/kotaeru.php3?q=510091 と同様に動かない機械では dao360.dll が存在しません。