現在、Windows 7 64 ビット環境に移植しようとしている 32 ビット PowerBuilder アプリケーションがあります。Window7 が登場する前に PowerBuilder 10.5 が以前にビルドされたという明白な事実と、このアプリケーションが Windows XP 32 ビット環境内でビルドされたという明白な事実に気づきました。
32 ビットの PowerBuilder アプリケーションは、Windows 7 64 ビット マシンに配布されると、次のエラー メッセージを吐き出します。 アプリケーションは終了しました。エラー:オブジェクトobjectwindowの関数ivvisiblecolumnの44 行目に指定されたデータウィンドウの行/列が無効です
データベース プロファイルのセットアップは OLEDB を指し、バックエンド データベースは MSSQL 2008 です。現在、アプリケーションは Windows7 64 ビット環境で実行され、照会モードでのみ動作しているようです。つまり、データウィンドウでレコードの一部を読み取ることができますが、トランザクションを作成しようとするとすぐに爆発します.
私の質問は、32 ビット アプリを 64 ビット環境で動作させることは可能ですか?
これまでのところ、クライアントは、PowerBuilder 12.5 へのアップグレードを考えずに、考えられる解決策を考え出すよう求めています。基本的に、彼らは 10.5 にとどまることを望んでいますが、アプリを 32 ビット環境から 64 ビット環境に移行させたいと考えています。コードが 64 ビットで機能しないかどうか、または 64 ビットの PowerBuilder クライアント ランタイムで dll の問題が発生するかどうかについては、さらに調査する必要があります。アプリケーションはキリストが大工だった時代よりも古いため、彼らは本当にアプリケーションの書き換えを避けようとしています。アプリはもともとPB 6.5で構築されたと思います。
これまでのところ、次のアイデアがありますが、これは初めてです。 - Windows 7 には仮想マシン IIRC が付属していることを理解しています。WOW64という名前だと思います。サーバー上に仮想を作成し、ユーザーに 64 ビット マシン内で 32 ビット アプリケーションを実行させることは可能ですか? 次に、ユーザーがクリックするだけのショートカットを作成しますか?
- テスト用に仮想 XP マシンと仮想 Windows7 64 ビット マシンがあります。PowerBuilder 10.5 は実際に Windows 7 にインストールされ、問題なく動作しているようです。ただし、実行モードまたはデバッグでアプリケーションを実行すると、ご想像のとおり多くのエラーが発生します。
- アプリケーションは XP でビルドされ、Windows 7 で実行されますが、結果として上記のエラー メッセージが表示されます。
- Run under Compatibility モードについてはまだ調べていませんが、チームからは機能しないと言われています。
UAC や ALC のユーザー管理についてはまだ見ていません。それは 64 ビット システムに影響を与えるものでしょうか?
これがアプリとは無関係であることはわかっていますが...特定の DLL ファイルをターゲットにするだけで、Windows 64 ビット環境で 32 ビット アプリケーションが動作する場合があります。例として、Windows 7 64 ビットで 32 ビット ゲームがクラッシュする Microsoft Flight Simulator X があります。その解決策は、uiautomationcore.dll という名前の Vista 64 ビット DLL ファイルを取得し、それを Windows 環境にコピーすることでした。また、ゲームを動作させるには、C: のルートにインストールする必要があります。
この問題にどのようにアプローチできるかについて、誰かに推奨事項はありますか?
ここでのメモがあいまいな場合は、お詫び申し上げます。
更新: 64 ビット マシンで PB 10.5 ランタイム ファイルを使用した経験のある人はいますか? powerbuilder クライアント ランタイムがその dll をアプリケーション C:\XXX の正しい場所にインストールしているのか、それとも見つからないのか疑問に思っています。これにどのようにアプローチするか疑問に思います。