mp3infpをx64へ移植2

最新バージョンを移植しました。
移植の手順・方法は、前回と同じため省略します。
詳しくは「mp3infpをx64へ移植」をご覧ください。

  • ソースコード
    mp3infp252a_x64_src.lzh

  • バイナリファイル
    前回同様、Visual Studio 2005 Beta 2 Go-Liveライセンスにより、実行ファイルを公開します。
    以下のことについて、ご理解のされた上で、ダウンロード・インストールを行ってください。

    1. Visual Studio 2005 Beta 2 Go-Liveライセンスにより、配布されます。
      Go-Liveライセンスについては、リンク先のページを参照してください。

    2. 実行ファイルは、β版の開発ツールにより作成されています。
      通常より、リスクが高いことをご理解の上ご使用ください

    mp3infp252a_x64.lzh

  • mp3infpをx64へ移植

    TClockの移植に成功したので、今度はmp3infpの移植に挑戦しました。
    mp3infp250_src.cabを元に作成しました。
    また、開発環境にVisualStudio2005β2日本語版を使用しています。
    VisualStudio2005β2日本語版は、MSDN サブスクリプション や、雑誌の付録で入手できます。
    私の場合は、MSDN サブスクリプションには入会していないので、日経BPムック「完全詳説!VisualStudio2005&SQL Server2005」\1900から入手しました。
    なお、ExpressEditionでは、x64コードを作成できません。
    必ず、TeamSystemなどのx64コードを出力可能なものを用意する必要があります。
    また、OggVorbisのヘッダーとライブラリが必要になります。
    OggVorbisのx64用ライブラリは現在のところ公開されていないようですので、
    自分で作成する必要があります。こちらも、別途作成し用意してください。

    1. mp3infpのソースコードをダウンロードし、適当な場所へ展開
    2. mp3infp.dswを、VisualStudio2005で開く
    3. プロジェクトを変換するか聞かれるので、全て変換する
    4. 構成マネージャを起動し、ソリューションプラットフォームにx64を追加
    5. ソースコードの修正(※1)
    6. 全ての*.manifestのprocessorArchitectureをX86からAMD64(または*)へ変更
    7. 全てビルド
    8. 7で作成されたファイルmp3infp.cpl, mp3infp.dllをC:\WINDOWS\system32へコピー
    9. mp3infp_regist.exeを適当な場所へコピー
    10. その下にフォルダlanguageを作成し、Japanese.lngをコピー
    11. レジストリエディタ(regedit.exe)を起動して、HKEY_CURRENT_USER以下にキー「win32lab.com」を作成し、その下に「mp3infp」を作成する。
    12. その中で、文字列値「path」を作成し、値を9でコピーした場所にする
    13. ファイル名を指定して実行から「regsvr32.exe mp3infp.dll」を実行

    ※1 ソース修正箇所について
    修正する箇所が多かったため、まだまとめきれていませんが、
    基本的に、コンパイラのエラーを全て修正しただけです。
    ロジック等に変更は加えていません。
    以下、差分をとって判明している分のみ記載

    1. GetWindowLongをGetWindowLongPtrに変更。同時にDWL_USER→DWLP_USER
    2. SetWindowLongをSetWindowLongPtrに変更。同時にDWL_USER→DWLP_USER, DWL_MSGRESULT→DWLP_MSGRESULT
      また、SetWindowLongの引数で、ポインタをDWORDにキャストして渡している箇所があるが、ここのキャストをLONG_PTRに必ず変更すること

    3. Unicode関係のAPI(WideCharToMultiByteや、MultiByteToWideChar, UTF16toUTF16BE等)の引数のキャストを修正(unsigned short * → WCHAR *)
    4. GetFloppyType.cpp 6~7行目をコメントアウト
    5. for文で、使用する変数(int i)の宣言が不足している箇所に、宣言を追加
    6. SendMessageTimeoutの最後の引数をDWORD型からDWORD_PTR型に変更
    7. ShellExt.h 226行目のUINTをUINT_PTRに変更
    8. ShellExt_IContextMenu.cppの97行目のUINTをUINT_PTRに変更
    9. ShellExt_IQueryInfo.cppの1050,1055,1060,1065,1070行目の右辺側にキャスト(LPCSTR)を追加
    10. ShellExt_IShellPropSheetExt.cppの101,128,156,183,216,249,280,311,342,373,404,435行目の右辺にキャスト(DLGPROC)を追加

    今回も、TClock Lightのときと同様、警告は無視しています。
    そもそも、ほとんどの警告はコンパイラのバージョンアップにより、
    (昔より)構文チェックが厳しくなったことによるもののようですから、
    警告の大部分は無視しても大丈夫な警告なのかな。とも今は考えています。
    今のところ、正常に動いているようですし、たぶん大丈夫でしょう


    追記(05/06/06)
    上記方法で、変更したソースを公開します。
    実行ファイルの配布については、VisualStudio2005β2のライセンス条件により
    配布することができないため、現在は行っておりません。
    mp3infp250_x64_src.lzh (678KB)


    追記(05/06/07)
    Visual Studio 2005 Beta 2 Go-Liveライセンスにより、実行ファイルを公開します。
    以下のことについて、ご理解のうえダウンロードください。

    1. Visual Studio 2005 Beta 2 Go-Liveライセンスにより、配布されます。
      Go-Liveライセンスについては、リンク先のページを参照してください。

    2. 実行ファイルは、β版の開発ツールにより作成されています。
      通常より、リスクが高いことを認識してください。

    mp3infp250_x64.lzh (974KB)
    インストール方法は、同梱のテキストファイルを参照してください。
    うまくいけば、このようになります。
    mp3infp_x64_screenshot.png