2007年10月23日火曜日

Windowsアプリケーション

学部3回生の計算機自習の課題を、TAとして参加している私を含め3人の学生がそれぞれ持ち寄ることとなりました。
私は音の研究をやってるので簡単なサウンドプログラミング。他の二人は画像処理をやっていると言うことで、ダイアログに画像を表示させ、さらにそこにフィルタを掛けて再描画という課題を与えることとしました。
で、C++をやってない学生たちにGUIアプリは作れるのか!?ってなわけで、私達TAが作成を試みて、その難易度を推し量ってみました。
3人ともそんなにGUIアプリケーションを作ったことがあるわけでもないため、悪戦苦闘^^;
計算機実習室に配備されているPCにインストールされている開発環境はVC++.netであるため、WindowsアプリケーションはWin32 APIを用いたモノとMFCを用いたモノ、そして.NETを用いたモノを選ぶことが出来ます。
私はC#で.NETのWindowアプリケーションなら作ったことがあると言うことで.NETで挑戦。途中思わぬトラブルに見舞われましたが、最終的になんとかボタンを押したらファイルを開くダイアログが立ち上がり、画像ファイルを選んだらウィンドウに画像がいっぱいに拡縮されて表示されるアプリケーションを作成できました。
途中Win32 APIでの作成も試みたんですが、雛形を見て挫折Orz なんじゃこりゃー!!!って感じでしたねぇ・・・。さっぱり分かりませんでした^^;
まぁC#で見慣れていたということもあって.NETの方が組みやすかったと思われますが、いずれにせよ、C++をまったく知らない学生に説明するのは骨やなぁという印象。
多少なりとクラスのことは知っておかないといけないからなぁ。それかいっそのこと、雛形を渡し、ボタンを押したときの処理だけ実装してもらって、雰囲気をつかんで貰うというのも手かも知れない。興味があれば、あるいは発展課題としてさらなる拡張をやってもらう、って感じ。これならまだ現実的な気がする。
なんせ、Managed C++は.NETのライブラリを扱える代わりにかなり独自の仕様が入ってて、Cオンリーの学生からしたら完全に道の言語に見えちゃうからなぁ。C++かじってたらまだよかったのだけれど。
ま、using構文やらなにやらを「おまじない」として誤魔化しちゃえば1,2週間の課題としては妥当じゃなかろうかw
とりあえず私は自分の課題の内容をまとめて担当教員に提出しないとなぁ。学会の資料作成があるから、こっちはささっと概要をまとめて、サンプルプログラム出して終わりにしておくか。ま、今度の日曜日でなんとかなるかな・・・?