DdsConverterというのは、今勉強中の書籍『ゲームプログラマになる前に覚えておきたい技術』に収録されている画像変換ツールである。
この本の第一版が2008年なので、6年前。
この6年間でウィンドウズでの開発環境は大きく変わっているわけで、サンプルソースや、サンプルを動かすために使うツールなど、最新の環境だとそのままでは動かなかったりする。
Javaのときはさして問題にならなかったIDEのバージョンの差異によるビルドエラーへの対処。
C++は、プラットフォーム依存のネイティブ開発といわれるが、こうなるともうプラットフォームではなくて、開発環境依存じゃんよ!
これはもう、半分以上はVisualCの開発もとのマイクロソフトの問題じゃないかと思う。
かといって、エクリプスのC++環境に変えるのも素人には敷居が高い。
なにより、俺の持っている書籍に載っているサンプルや開発環境はことごとくVisualStudio系の製品だからだ。
変えたところで改善するかもわからない。
まぁしかし、嘆いてばかりもいられないし、この本ばかりはそう簡単に投げ出すわけにもいかないので、自力で解決しながら進むしかない。
今読んでいる第三章では、第二章までCUIで作っていた倉庫番もどきのゲームを、画像を使ったウィンドウプログラムに修正しようというもの。
そこで使われる画像の形式が、DDS形式というマイクロソフト独自の形式で、親切な著者は一般的なJPEGやPNG形式のファイルをDDSに変換するプログラムを提供してくれている。
そして、このツールが動かなかったのだ。というか立ち上がったものの、肝心の変換機能を使おうとするとエラーがでてうまく行かない。
幸いというか、そういうケースも見越しているのであろう著者は、ツールのソースもつけてくれていたので、なんとか修正して進めることが出来た。
根本的な問題は、実のところわからない。おそらく、このツールを作った環境のWindows系のライブラリのバージョンと、俺のマシンのそれとが異なっていて、エラーが発生しているものと思われる。
ツールは幸いC#で作られていて、しかも単一ソースの簡単な作りだったので、タイトルにあるとおり、俺のC#環境(VC#2010)で新規でWin32アプリケーションのプロジェクトを作成して、ソースをコピペしたところ動くものが出来上がった。
もちろん、参照の追加や、プロジェクト設定をオリジナルのプロジェクトのものにあわせるなど、IDEの設定操作は必要。
さらに、DirectXのSDKのインストールも前提となっている。
と、こんな感じで毎回といっていいほど、言語仕様以外の何かしらの問題にぶちあたるC++開発。
あぁ、Javaに帰りたい。Javaでならここまでのサンプルソース程度の内容、余裕で作れるのに。
この先も何かと地雷を踏んでしまうんだろうなあ。
というか、すでに本書が提供するウィンドウ作成部分のライブラリも、不穏な動作をしてるんだよな。
多少手間ではあるけれども、本書のサンプルソースを最新のIDEである Visual Studio 2013 で動かせるようにウィンドウの作成部分を自作して、本書を進めたほうがよさそうな気がしてきた。
ウィンドウの作成部分に関しては、すでに別の書籍、『入門ゲームプログラミング』で学んだことだしね。