Windows 10 上の VB6 アプリの互換性の問題

Windows 10 上の VB6 アプリの互換性の問題

大きな問題

私が勤務する組織では、管理システム (別の会社が作成したモジュール アプリケーション) は 97/98 年に VB で開発され、VB.NET などのより進化した開発プラットフォームに移行したことがありません。このアプリケーション (32 ビット) は、32 ビットと 64 ビットの両方の Windows 7 で正常に動作しました。

さて、セキュリティ上の明らかな理由から、このシステムを Windows 10 にインストールする必要がありますが、いくつかの問題があります。

  1. Windows 7との互換性がないため、メイン アプリケーションは、他のボタンを使用してサブ アプリケーションをモジュールのように起動します。これらのサブアプリケーションのいくつかは、ランタイム エラー '53': ファイルが見つかりませんどの dll が欠落しているかを指定せずに、他のサブアプリケーションは開きません。もちろん、ライブラリが に登録されていることはすでに確認済みですregsvr32
  2. Windows 7との互換性があり、実行時エラー「53」は消えたように見えますが、その後プログラムは警告を発します(たとえば、予測された英語以外の言語で表示されるため、注意してください。処理する必要がある一部のファイルを特別なフォルダにコピーできなかったことに注意UserProfile詳細として追加する「ランタイム エラー '52':ファイル名または番号が間違っています」

何を試しましたか?

  • Windows 10 の 32 ビット版と 64 ビット版でアプリケーションを実行してみました。どちらのバージョンでもプログラムは失敗し、32 ビット版ではさらに動作が悪くなるようです。

  • また、コードを逆アセンブルしようとしたところ、エラーは特殊フォルダ (少なくともProgramFilesおよびUserProfile) に関連するルートを解決することから発生していることがわかりました。

  • 私は自分で調べたところ、それは何らかの原因によるものかもしれないと疑っていますこのスレッドに示されているように、シェルとアーキテクチャの問題アプリケーションはシェルを使用して特別なフォルダーを解決します。ただし、これらのフォルダーのパスは正しく解決されます。

  • これは、アプリケーションをより高いモードで実行することと関係しているのではないかと強く疑っています。管理者モードで実行し、特別なフォルダーのアクセス許可を取得しようとしました。ただし、いくつかの構成が不足していると思います。

  • プログラムが更新されるまで、Windows 7をWindows 10内で仮想化することを真剣に検討しています。ここで提案されているようにですが、最後の弾として使いたいのです。

正直、行き詰まっています。何か案は?

PD: スタイルに関する明白な回答は避けてください「あなたの組織はより優れたソフトウェアにお金を払うべきです」私は IT 部門に所属していますが、この見苦しい管理ソフトウェアのデータベースをまだアンバインドできていません。上司に変更を納得してもらうのにどれだけの費用がかかっているかは言うまでもありません。

答え1

私の経験では、Windows 7 とは異なる問題を本質的に引き起こす Windows 10 特有の問題は発生していません。もちろん、アプリケーションは異なるため、これが普遍的に当てはまるとは限りませんが、私ならまず、完全な互換性の問題ではなく、インストールまたは構成タイプの問題を探します。

52/53のエラーは、権限の問題でしょうか?ドライブのマッピングの問題でしょうか?アプリケーションをプロセスモニターそのツールで何が欠けているか、何が見つからないかを検出できるかどうかを確認します。

答え2

- 管理者として実行します。

- 自分で作成したフォルダにインストールします。

- 彼のすべてのサブフォルダーの所有権を取得します。

多くの VB6 アプリケーションには、Windows 10 上の独自のフォルダーにアクセスする権限すらありません。

MS アプリケーション互換性ツールキットを試す

関連情報