BorlandC++でのSDLmmのコンパイル
2005年8月4日現在、BorlandC++にSDLmmをポーティングしている。
作業の流れを以下に示す。
1.SDLのダウンロード後、アーカイブ内のBorland.zipの解凍。その中に入っているインポートライブラリを使った最小SDLアプリケーションのコンパイルを行った。
http://ilaliart.sourceforge.jp/arc/SDL_sample.zip
2.その他、SDL_mixer、SDL_image、SDL_ttfをダウンロードして、ヘッダを入手、SDLのincludeフォルダに突っ込む。
3.SDL_ttfのEBDTの問題の解決のため、SDL_ttfを再コンパイル。とりあえず下のURLにDLLのバイナリを一式コンパイルして上げて置いたので、試してみたいかたはどうぞー。
なお、インポートライブラリに関しては、SDLアーカイブ内に入っていたものをそのまま利用できるが、一応念のためにそれも入れておく。
http://ilaliart.sourceforge.jp/arc/SDL_dlls.zip
EBDTの問題については下記URLを参照して欲しい。文字列のルビ振り時に問題となる。
http://ilaliart.sourceforge.jp/tips/ttf_mini.html
なお、検証用のプログラムは以下からダウンロードして欲しい。
DWORDの定義が足りないと言われるので、windows.hヘッダファイルを読み込ませてあげること。
http://kirara.k1.xrea.com/arc/ttf_win.zip
//===================================================
この後なのだが、SDLmmがコンパイルできない状態(というか、面倒なので先に進んでいません)。
次の点でひっかかっています。
・SDLmmコンパイル中にを読み込むと、WINGDIAPIの宣言の重複が見つかったと怒られます。少し調べればなんとかなりそうな問題ではあるけれど。
なお、VC++.Net2003で作成したDLLは、バイナリの構造が従来のCOFFとは異なるため、BorlandC++で採用しているOMFへの変換がimplibだけでは行えないような状況です(これを見越してMicrosoftはやったのだろうか…そうだとしたら極悪ですが)。
一応、dumpbinでDLLがエクスポートしている関数を列挙後、defファイルを作成し、libを使って新COFF→旧COFFへの変換を行おうとしたのですが、.Net2003ではすでにそれさえも出来ないようになっているようで、OMFへの変換はかなり絶望的です。DigitalMarsのimplibを使えばできるという噂もありますが、こっちはまだ試していません。
なので、またVC++6.0を入れて、implibでOMFのインポートライブラリを作ってしまおうかと思っています。
むむぅ、意外とBorlandはむずいんだな。
作業の流れを以下に示す。
1.SDLのダウンロード後、アーカイブ内のBorland.zipの解凍。その中に入っているインポートライブラリを使った最小SDLアプリケーションのコンパイルを行った。
http://ilaliart.sourceforge.jp/arc/SDL_sample.zip
2.その他、SDL_mixer、SDL_image、SDL_ttfをダウンロードして、ヘッダを入手、SDLのincludeフォルダに突っ込む。
3.SDL_ttfのEBDTの問題の解決のため、SDL_ttfを再コンパイル。とりあえず下のURLにDLLのバイナリを一式コンパイルして上げて置いたので、試してみたいかたはどうぞー。
なお、インポートライブラリに関しては、SDLアーカイブ内に入っていたものをそのまま利用できるが、一応念のためにそれも入れておく。
http://ilaliart.sourceforge.jp/arc/SDL_dlls.zip
EBDTの問題については下記URLを参照して欲しい。文字列のルビ振り時に問題となる。
http://ilaliart.sourceforge.jp/tips/ttf_mini.html
なお、検証用のプログラムは以下からダウンロードして欲しい。
DWORDの定義が足りないと言われるので、windows.hヘッダファイルを読み込ませてあげること。
http://kirara.k1.xrea.com/arc/ttf_win.zip
//===================================================
この後なのだが、SDLmmがコンパイルできない状態(というか、面倒なので先に進んでいません)。
次の点でひっかかっています。
・SDLmmコンパイル中にを読み込むと、WINGDIAPIの宣言の重複が見つかったと怒られます。少し調べればなんとかなりそうな問題ではあるけれど。
なお、VC++.Net2003で作成したDLLは、バイナリの構造が従来のCOFFとは異なるため、BorlandC++で採用しているOMFへの変換がimplibだけでは行えないような状況です(これを見越してMicrosoftはやったのだろうか…そうだとしたら極悪ですが)。
一応、dumpbinでDLLがエクスポートしている関数を列挙後、defファイルを作成し、libを使って新COFF→旧COFFへの変換を行おうとしたのですが、.Net2003ではすでにそれさえも出来ないようになっているようで、OMFへの変換はかなり絶望的です。DigitalMarsのimplibを使えばできるという噂もありますが、こっちはまだ試していません。
なので、またVC++6.0を入れて、implibでOMFのインポートライブラリを作ってしまおうかと思っています。
むむぅ、意外とBorlandはむずいんだな。
コメント