32ビットアプリケーションをだまして64ビットシステムで実行しますか?


3

32ビットシステムで実行されているか64ビットシステムで実行されているかをチェックするレガシーWindowsアプリケーションがあります。どうやら利用可能な64ビットバージョンはありませんが、64ビットWindows 7ワークステーションで実行しなければならない状況に直面しています。この目的のために32ビットVMをスピンアップする以外に、この問題を回避する可能性のある提案はありますか?


1
このレガシーWindowsアプリケーションには名前がありますか?
マイケルハンプトン

@Michael Hampton-これはコンパイルされたVFPデータベースです。
ジョシュ

回答:


6

私が使用する方法は、32Bit DLLのヘッダーで望ましいアプリケーションにフラグを立てるため、実行するたびに、アプリケーションは32ビットモードDLLを認識し、それらをメモリ空間にロードします。

  1. Windows 7および.NET Framework 4用Microsoft Windows SDKをダウンロードします

  2. インストールしてください。

  3. CorFlags.exeSDKプログラムファイルディレクトリのBinフォルダーから指定されたMicrosoft CorFlagsユーティリティを取得します。

  4. 次を使用して32Bit dllを使用するようにアプリケーションにフラグを立てます。

    CorFlags /32BIT+ yourapplication.exe
    

次回アプリケーションを実行すると、Windowsは新しいヘッダーを表示し、32ビットアプリケーションとして実行します。アプリケーションは、Windowsが提供する32ビットDLLを使用します。


良さそうに見えますが、インストーラーはあいまいなエラーで終了します:(
ジョシュ

@Joshエラーとは正確には何ですか?
ズール

「「Microsoft Windows SDK for Windows 7」製品のインストールで次のエラーが報告されました。詳細については、Samples \ Setup \ HTML \ ConfigDetails.htmドキュメントを参照してください。」
ジョシュ

2

Visual FoxProは、アプリが64ビットシステムで正常に動作する場合でも、64ビットODBCドライバーを使用できません。

この問題を回避するには、昇格したコマンドプロンプトを開き、実行C:\Windows\SysWow64\odbcad32.exeしてDSNをセットアップします。

ここから恥知らずに食い物にされ。)


1
別のデータベースでこの回避策を見たことはありますか?ただし、この特定のアプリケーションはODBCデータソースを使用せず、ローカルファイルのみを使用します。
ジョシュ

2

このためにVMをスピンアップしたくないと言ったのは知っていますが、XPモードは必要なことを正確に行い、透過的に実行できるため、VMでアプリが実行されていないように見えます。

XP Modeをインストールして、ニーズに合うかどうかを確認します。


試してみます。
ジョシュ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.