PocketPC Telnetクライアントの24termをW-ZERO3用にビルドする |
更新日時:2005年12月16日 |
プログラム / モバイル / ダウンロード / AIR-EDGE PHONE / WindowsMobile / Windows |
たまにはプログラムのことを書いてみる。 今までCE関連はやったことがなかったので、24termのソースを折角入手できたと言うことで今後なんか作る時のためにW-ZERO3でどんな動作になってるのか調べてみた。 W-ZERO3への既存PPCソフトの適用や最適化を考えた時、まず問題になりそうなのはVGA対応って気がします。 すでにPPCのソフトは多数出回っているが、当然ながらVGAに対応しているものは少なく。 また、W-ZERO3はSL-Zaurus同様に縦横をローテーションできる液晶パネルを持っているのできっとこの辺りも移植時とかにいじらないといけないのではないかと。 24termは自前で描画しているのでこの辺り調べるのには丁度いい感じ。 とりあえず単純にソースを追っかけてみたところ、当然のことながら最初に解像度を取得している。 HDC dc= GetDC(0); GetDeviceCaps(dc, VERTRES); GetDeviceCaps(dc, HORZRES); ここでプログラマが期待するのはビュースタイル(キーボードを出してない状態)では480x640、インプットスタイル(キーボードをシャコってした状態)では640x480と返って欲しいところ。 で、とりあえずデバッグ用にMessageBoxを突っ込んでサイズを見てみたところ…おいおいQVGAで返ってきてるじゃねぇかよw ザウとは違ってローテーションは自動的に取得してローテーションした解像度で返って来てはいるので、ちゃんとした解像度が取れたら開発も楽になりそうなんだが。 で、他のCE機でもまぁ同じ問題が発生してるだろうって事でちょっと調べたらズバリ発見。 要するにデフォルトだとQVGAエミュレーションってのが効いちゃってるわけですな。 で、とりあえず書いてある通りにQVGAエミュレーション解除してやったら(特定のリソースを追加するだけ)あっさりVGAで解像度やDPI取れました。 MSDNでTips書いておいて自分とこの製品(IE Mobile)ではVGA対応してないMSに乾杯(ぉ いやまぁ、正しい解像度が取れるだけで、既存のQVGAソフトをVGA対応にしようとしたらこれ以外にも修正がたくさん必要だと思うけどね。 IE Mobileも早くVGA対応版出して欲しいところ。 で、上の作業を行い24termをビルド。W-ZERO3上で実行…小さっ!w 1/4サイズで表示されました。これはこれでちっこくて可愛くていいかもw ソースを眺めてた時にSigmarion3のVGAに関する定義があったなぁとふと思い出し、その部分を変更 ※ common.h で以下の部分の定義を変更(コメントアウト)しただけです。参考までに。 ※ //#if WIN32_PLATFORM_PSPC ※ //#define CE_PSPC 1 ※ //#endif で、ビルド。見事VGAで実行されました。 ビュースタイルだと起動時にサイズが小さいと弾かれてしまいますが、インプットスタイルならキーボード直接叩いてTelnet可能ですわ。すんばらしい。 つーかビュースタイルでTelnet使わねぇ気が…w 自前で描画してたりネットワーク関係扱ってたりといろいろ参考になるソースなので今後とも利用させていただこうと思った次第。 24termの作者様のぞろよしさんに感謝。 一応、ビルドしたバイナリをあげておきまふ。 VS2005のRC版でビルドしたものなんでライセンス的に怪しいからこっそりと…w ・W-ZERO3用にビルドしてみた24termバイナリのみ フォントとかはつけてないのでもし使うのならオリジナル落としてきて上書きして使ってくだされ。 ちなみに24term作者のぞろよしさんのサイトはこちら。 |
コメント |