集中講義1.携帯端末系開発

Lesson 1.C++によるCGIプログラミング
 〜 Windowsマシンをサーバーにする '01/08/12

最近、ちまたではWindowsでIISを導入しているサーバーのCodeRedの感染が話題になっていますが、それは裏を返せばWindowsサーバーの浸透ぶりを意味するのでしょう。

そこで、ここでは、プラットフォーム(ターゲットマシン)は、Windowsとします。何故、Windowsかと言うと、いまやパソコン買ったらまず間違いなくWindowsがインストールされているわけですし、Apacheさえインストールすればすぐにサーバーになります。また、今後、インフラが普及してくれば、自宅サーバー当たり前という状況になってくるわけで、そうなってくるとWindows(Visual C++)でCGIを書いたほうが、いままでの資産やデバッグノウハウを使えるのでは無いかという甘い希望を胸に抱き、我々はLinuxという辺境の地を後にしたのだった。(何のこっちゃ)

うだうだ言ってても仕方ないので、さっそくCGI用のSDK

yaneCGISDK101.lzh (update'01/09/21)

を書きました。これは、CGIを作るのにあれば便利なものを集めたSDKです。とは言ってもほとんどyaneSDK2ndからぶっこ抜いたので、あまり何も足していないのですが。だもんで説明は割愛します。詳しくはyaneSDK2ndのリファレンスでも漁ってください。

標準入力から入力を得て、標準出力に出力すれば良いだけなので、プログラム的にはゲームプログラムなんかよりよっぽど楽です。C++で書いたとき苦労するのが、文字列処理ですが、yaneSDK2ndの連想記憶クラスと、簡単な文字置換関数(正規表現では無いが)を用いて、そのへんを回避しています。(詳しくはソース見てください)

実行ファイルは、.exeを.cgiと拡張子の変更をしてやるだけでOkです。あとはApacheの設定が必要ですが、そのへんは、上のSDKのマニュアルのなかにhttpd.confの変更点を書いてます。

さて、Windowsとターゲットを絞ることにより、生まれてくる利点は、

1.ターゲットも開発マシンもWindowsマシンで済む^^;
2.ターゲットマシンが開発マシンと同じなので実装系依存の問題を極力回避できる
3.Visual C++で、デバッグトレースすることが出来る
4.Mutexクラスで簡単にファイルのLock〜Unlockをすることが出来るので、排他処理の問題にあまり悩まされることが無い
5.暴走しても、すぐにタスクマネージャを起動して、プロセスを落とすことが出来る
6.いままで蓄積してきたWindows開発経験を生かせる
7.C++で書けば同等の処理をPerlで書くより幾分高速である

などなど、いいこと尽くめなのであります。(人によるんでしょうけど)

あと、私は携帯用のサイトを構築している関係上、あまりインターネット上では資料の存在しない、ez-webについてのノウハウなども、ここに書いていけたらと思っています。そのへんについて詳しい説明は、次回以降ということで。

その他、何か要望などありましたら、私までメールください。


戻る