TClockの移植に成功したので、今度はmp3infpの移植に挑戦しました。
mp3infp250_src.cabを元に作成しました。
また、開発環境にVisualStudio2005β2日本語版を使用しています。
VisualStudio2005β2日本語版は、MSDN サブスクリプション や、雑誌の付録で入手できます。
私の場合は、MSDN サブスクリプションには入会していないので、日経BPムック「完全詳説!VisualStudio2005&SQL Server2005」\1900から入手しました。
なお、ExpressEditionでは、x64コードを作成できません。
必ず、TeamSystemなどのx64コードを出力可能なものを用意する必要があります。
また、OggVorbisのヘッダーとライブラリが必要になります。
OggVorbisのx64用ライブラリは現在のところ公開されていないようですので、
自分で作成する必要があります。こちらも、別途作成し用意してください。
- mp3infpのソースコードをダウンロードし、適当な場所へ展開
- mp3infp.dswを、VisualStudio2005で開く
- プロジェクトを変換するか聞かれるので、全て変換する
- 構成マネージャを起動し、ソリューションプラットフォームにx64を追加
- ソースコードの修正(※1)
- 全ての*.manifestのprocessorArchitectureをX86からAMD64(または*)へ変更
- 全てビルド
- 7で作成されたファイルmp3infp.cpl, mp3infp.dllをC:\WINDOWS\system32へコピー
- mp3infp_regist.exeを適当な場所へコピー
- その下にフォルダlanguageを作成し、Japanese.lngをコピー
- レジストリエディタ(regedit.exe)を起動して、HKEY_CURRENT_USER以下にキー「win32lab.com」を作成し、その下に「mp3infp」を作成する。
- その中で、文字列値「path」を作成し、値を9でコピーした場所にする
- ファイル名を指定して実行から「regsvr32.exe mp3infp.dll」を実行
※1 ソース修正箇所について
修正する箇所が多かったため、まだまとめきれていませんが、
基本的に、コンパイラのエラーを全て修正しただけです。
ロジック等に変更は加えていません。
以下、差分をとって判明している分のみ記載
- GetWindowLongをGetWindowLongPtrに変更。同時にDWL_USER→DWLP_USER
- SetWindowLongをSetWindowLongPtrに変更。同時にDWL_USER→DWLP_USER, DWL_MSGRESULT→DWLP_MSGRESULT
また、SetWindowLongの引数で、ポインタをDWORDにキャストして渡している箇所があるが、ここのキャストをLONG_PTRに必ず変更すること - Unicode関係のAPI(WideCharToMultiByteや、MultiByteToWideChar, UTF16toUTF16BE等)の引数のキャストを修正(unsigned short * → WCHAR *)
- GetFloppyType.cpp 6~7行目をコメントアウト
- for文で、使用する変数(int i)の宣言が不足している箇所に、宣言を追加
- SendMessageTimeoutの最後の引数をDWORD型からDWORD_PTR型に変更
- ShellExt.h 226行目のUINTをUINT_PTRに変更
- ShellExt_IContextMenu.cppの97行目のUINTをUINT_PTRに変更
- ShellExt_IQueryInfo.cppの1050,1055,1060,1065,1070行目の右辺側にキャスト(LPCSTR)を追加
- 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ライセンスにより、実行ファイルを公開します。
以下のことについて、ご理解のうえダウンロードください。
- Visual Studio 2005 Beta 2 Go-Liveライセンスにより、配布されます。
Go-Liveライセンスについては、リンク先のページを参照してください。 - 実行ファイルは、β版の開発ツールにより作成されています。
通常より、リスクが高いことを認識してください。
mp3infp250_x64.lzh (974KB)
インストール方法は、同梱のテキストファイルを参照してください。
うまくいけば、このようになります。