Windows2000で表記が I64d と出るソフトに対応

Visual Studio 2005 以降の printf 文は拡張されていて、
%I64o、%I64u、%I64d、%I64x  などの表記が使えます。
(それぞれ、8進数、unsinged _int64、_int64、16進数)

これは、Windows XPの場合、user32.dll内の関数が拡張されているため、そのまま使用しても問題ないのですが、Windows2000の場合だと I64o、I64u、I64d、I64x のように化けてしまいます。
atr1
これは、NEXONのアトランティカ のゲーム画面


ちなみに、アトランティカの実行フォルダ内には、Windows XPのmsvcrt.dllの Runtimeがおいてあるので、KDWでEz KD レジストリモードにチェックが入っていると、エラー(プロシージャ エントリ ポイント RtlGetNtVersionNumbers がダイナミック リンク ライブラリ ntdll.dll から見つかりませんでした。)
atr3
というエラーが出てしまいます。

このファイルにfcwinの特殊書き換えパッチを当てるか、削除した後で、 Windows Media Player 10 for Windows 2000 のインストーラーを起動して msvcrtのアップデートをすることで(本体はインストールしなくてもよい)回避することができます。

ちなみに、アトランティカについては、公式サイトに、【重要】Windows2000にて、正常に起動できない問題の改善について というのが出ていますが、エラーが出る場合は、このパッチを当ててもだめで、上記の修正を行ってください。

で、KDW の user32.dllを簡易インストールすることで、 printf 関数を拡張することができるので、正常に表示できるようになります。
atr2
関連サイト:
せれろぐ -Celestial's paradigm- ぼっそ
nanika [ 2009/04 ]
自由掲示板 「アトランティカ」

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です