32bitで作ったアプリケーションの64bit環境へのコンパイル
32bitで作ったアプリケーションの64bit環境へのコンパイル
現在、32ビット環境で作ってWindowsXPで正常に動作しているアプリケーションを、
Windows7などの64ビット環境でWOW64を介せずに起動できるように、x64用に
コンパイルしようと考えています。
今まではVC++2008EEとWindowsSDK,DirectX9を使って組んでいましたが、
ExpressEditionだとx64向けのコンパイルができないと言うことで、2010EEと
WindowsSDK7.1をインストールし、その後構成マネージャで設定をx64にして
XP32bit上でコンパイルしました。ソースコードは全く手を加えない状態だったので、
何かエラー・警告があるかと思いましたが、警告も出ずコンパイルは通り、
64ビット環境で起動することも出来ました。
しかし、起動した直後に処理が非常に重くなり、FPSも10~20程度ではないかと
言うほどに動作がもっさりとしてしまいます。
起動しないわけではないし、動き自体も低速ながら、期待されたもしくは
XP32bitで起動したときと同じように動いているように見受けられます。
よく見るポインタの長さに関しての問題等も、そもそもあった場合エラーが出て
落ちてしまうのではないかと思います。現状ソースを修正するにしても、
エラーも何も出ていないためどこにどう手を加えたらいいのか分かりません。
なにか原因となるものに心当たりがあればご教授いただけると幸いです。
使用ソフトは上記のようにVC++2008と2010、WinSDK,DirectXともにSDKは
(おそらく)最新版でリンクするライブラリのパスにはx64のフォルダを指定、
プリプロセッサの設定で_WIN64を定義しています。
コンパイラも、起動出来てはいるので64ビットのコードを吐くものに
設定されていると思います。
お礼
ありがとうございました。