Visual C++ 2008 ExpressでLameをビルド

Visual C++2008がMSより無償提供され、また、lame3.98よりVC9用のプロジェクトファイル同梱されるようになったので、高価な開発環境を持っていない人でも比較的容易にlameをビルドできるようになりました。そこでその方法を大ざっぱにまとめてみました。

マイクロソフトのWebページからVisual C++ 2008をダウンロードしインストールしておいてください。
Webインストールと、オフライン・インストール(ISOイメージをダウンロードしてCD-Rなどに焼く、または仮想CDドライブにマウントしてインストール)が選べますが、お好みの方法で。
The Netwide Assembler からnasmをダウンロードします。
このページを作成時点ではVer2.05がstable最新なので nasm-2.05-win32.zipというのが目的のファイルです。
ダウンロードしたものを解凍して nasm.exeというファイルをパスの通ったフォルダへコピーします。面倒ならVisual C++ 2008をインストールしたフォルダの下のVCフォルダの下にbinフォルダがあるので、そこへ放り込んでもかまいません。
Lameのソースコードをダウンロードして解凍します。
解凍先はパスに日本語を含まない場所にしてください(nasm.exeが日本語パスをうまく扱えずエラーになる場合があるので)
ダメ文字対策
解凍したソースファイルの frontendフォルダにある parse.cをエディタなどで開いて以下の修正をします。

125行付近

#ifdef WIN32
#include <winbase.h>
#include <mbstring.h>    ←追加
static void
dosToLongFileName(char *fn)

143行付近

// q = strrchr(fn, '\\');   ←先頭に//を入れてコメント化
// p = strrchr(fn, '/');    ←先頭に//を入れてコメント化
q = _mbsrchr( fn, '\\' );   ←追加
p = _mbsrchr( fn, '/' );    ←追加

解凍したソースファイルの vc_solutionフォルダにVC9用のソリューションファイル vc9_lame.slnをダブルクリックするとVC9が立ち上がるはずですが実際はエラーになります。

原因はソリューションファイル vc9_lame.slnを含め拡張子 .slnのファイルの改行コードがLFのみとなっている為で、テキストエディタなどで Win標準の CRLFに変更すれば正常に開けるようになります。
vc9_lame.slnをダブルクリックすると VC9が立ち上がります。
ツールバーの構成オプションの所を Release NASMに変更します
左のソリューションエクスプローラの libmp3lameを選んで右クリック−[プロパティ]
C/C++の下の[コード生成]を選択します。
10 以下の項目を変更します。
ランタイムライブラリ:MTマルチスレッド
浮動小数点モデル:Fast
拡張命令セットを有効にする:お好みで
11 ソリューションエクスプローラに表示されている mpg.lib 、lame に対しても上の8〜10の設定をします。
12 ソリューションエクスプローラでlameを選択して右クリック−[ビルド]
13 ビルドが成功すれば outputフォルダに lame.exeができています。
おまけ 私が使っているソリューションファイルと修正ファイル一式です。
lame3.98.2のソースに上書きしてビルドすればいいはず。
ソースはダメ文字対策に加えてlibiconvをリンクしてunicodeタグのオプションが使えるように修正しています。 私の使う範囲では問題は発生していませんが、使う場合は自己責任で。