1

自分のマシン (windows 7 x64) でコードを実行しようとしています。これは、サードパーティが提供する i386 ベースの dll を動作させる必要がある Fortran 90 コードです。

(最新の gfortran と mingw を使用して) x64 ターゲットにコンパイルしようとすると、i386 dll ファイルが原因で拒否されました。次に、i686 ターゲットにコンパイルしようとしましたが、コンパイルはエラーなしで機能しました。

ただし、出力された a.exe ファイルは x64 ウィンドウでは実行されず (予想どおり)、Dosbox から実行しようとすると (正しいディレクトリに到達したときに "a" または "a.exe" と入力するだけです)。 、「このプログラムは DOS モードでは実行できません」というメッセージが表示されました。

だから私の質問は: コンパイル プロセスの失敗ですか、それとも Dosbox が何らかの理由でプログラムを拒否しますか (その理由は、実行時に "a.exe" プログラムがファイルに書き込む必要がある可能性があります: それはその目的であり、実際に!) もしそうなら、その理由は何ですか?最終的に私のexeファイルが実行されるのを確認する方法はありますか? 私のマシンで?

編集: Dosbox は確かに私が別のプロジェクトから持っている 32 ビットの exe ファイルを実行できるので、Dosbox が完全に機能しないわけではありません。ただし、そのexeファイルをWindows 7で直接開こうとすると、x64と互換性がないと表示されますが、他のファイル(a.exe)の場合、コード「0xC000007b」で「初期化に失敗しました」と表示されます...残念ながら私のコンパイラのデバッグの知識はゼロに近いです...

ご助力ありがとうございます!

4

0 に答える 0