私の会社には、クライアントがWindows732ビットにインストールするように要求したCrystalReports7を使用するVB6アプリケーションがあります。現在、クライアントのWindowsXP32ビットSP2マシンにインストールされています。DBへの接続は、別のサーバー上のSQLServer2000インスタンスへのODBCを介して行われます。
Windows 7では、インストールは正常に機能しますが、アプリケーションを開こうとすると、エラーが発生します。
私は以下を見てきました:
- zippy32を使用してすべてのdllおよびocxファイルを登録します。すでに登録されているか、「[name] .dll」が有効なDLLまたはOCXファイルであることを確認してから再試行してください」というメッセージが表示されるため、登録されないものもあります。私はこれに関してこのフォーラムスレッドを読みました:http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62
- ProcessMonitorアプリケーションを使用してアプリケーションの起動を監視し、不足しているdllまたはocxファイルがあるかどうかを確認しました。これは当てはまらないようです。
- このリストに従ってアプリケーションをレビューしましたが、これらのガイドラインに違反するものはないようです。
これに関連するナレッジベースの2つの項目に気づきました
- http://support.microsoft.com/kb/281848-アプリケーションにバンドルされているcomdlg32.ocxはバージョン6.0.81.69であり、開発マシン(WinXP 32ビット)のsystem32フォルダーにあるものは6.1.97.82です。しかし、これが問題だった場合、確かに現在は機能しませんか?
- http://support.microsoft.com/kb/184898-これが問題であることを確認する方法がわかりません
最後に、複雑さのため、このアプリケーションにコードを変更することは許可されていません。たとえそうだったとしても、私はVB6プログラマーではなく、ひどくサポートプロジェクトを手に入れた男です!コードの変更が必要な場合は、WinXPモードを使用して調査する必要があります。
更新:XPモードでも同じエラーが発生します。これは、SP3VMを搭載したWinXPです。これはWinXPSP2 VMで実行されますが、これを引き起こす可能性のある何かがSP3にある可能性がありますか?それとも、XPモードであるという事実だけですか?