Windows2000で表記が I64d と出るソフトに対応
Visual Studio 2005 以降の printf 文は拡張されていて、
%I64o、%I64u、%I64d、%I64x などの表記が使えます。
(それぞれ、8進数、unsinged _int64、_int64、16進数)
これは、Windows XPの場合、user32.dll内の関数が拡張されているため、そのまま使用しても問題ないのですが、Windows2000の場合だと I64o、I64u、I64d、I64x のように化けてしまいます。
これは、NEXONのアトランティカ のゲーム画面
ちなみに、アトランティカの実行フォルダ内には、Windows XPのmsvcrt.dllの Runtimeがおいてあるので、KDWでEz KD レジストリモードにチェックが入っていると、エラー(プロシージャ エントリ ポイント RtlGetNtVersionNumbers がダイナミック リンク ライブラリ ntdll.dll から見つかりませんでした。)
というエラーが出てしまいます。
このファイルにfcwinの特殊書き換えパッチを当てるか、削除した後で、 Windows Media Player 10 for Windows 2000 のインストーラーを起動して msvcrtのアップデートをすることで(本体はインストールしなくてもよい)回避することができます。
ちなみに、アトランティカについては、公式サイトに、【重要】Windows2000にて、正常に起動できない問題の改善について というのが出ていますが、エラーが出る場合は、このパッチを当ててもだめで、上記の修正を行ってください。
で、KDW の user32.dllを簡易インストールすることで、 printf 関数を拡張することができるので、正常に表示できるようになります。
関連サイト:
せれろぐ -Celestial's paradigm- ぼっそ
nanika [ 2009/04 ]
自由掲示板 「アトランティカ」
Comments