昨年の12月から、Win-CE機の業務用アプリを作ってた。
Win-CE機も開発言語のVC++も、ほとんで全然やった事がなくて
確か昨年のBlogにも書いてたと思う。
ヤバイ・・・ってね。(笑)
やれば出来るものである。(爆)
基本的なロジックはまぁ~なんとかなるのはわかっていたのだが
本質的にVC++を理解していないわけで、何か特別なことをしようと思うと
解決方法はネットを検索しまくって、サンプルなり、やり方を探すしかない。
いや~ほとんどの時間を検索に費やしたかもしれない。
一番ハマったのが漢字文字をシフトJISコードの16進キャラクタ文字に
変換する方法だった。
何故そんな事をする必要があったのか?
サトーの携帯プリンタで漢字を印刷しようと思ったら、
ESCコードとシフトJISコードの16進キャラクタ文字で渡さないと
印字してくれないという・・・今時そんなのあり??
Bluetoothでプリンタと通信して制御する部分は
案外あっさりとクリアできたんだけど、この変換には泣かされた。
VC++を理解していれば、そんな難しい事ではない。
でも、基本的に理解してないままやってるもんでわけがわからない。
サトーのHPに載ってるサンプルはVBで、VC++のはなかったのだ。
あればあっさり出来たんだけどねぇ~。
サトーに問い合わせてもVC++では実績ないんでサンプルないと・・・。
サトーでもネットで検索してくれてシフトJISをJISに変換するサンプルが
載ってるHTを紹介してくれた・・・だけだった。
ところが、Win-CEでは使えない命令をそのサンプルは使ってて
試してみたけど全然ダメだったのさ~。
Win-CEは、結構制限多いよね・・・あ、この命令で出来るか?と思っても
それは使えない・・・ってのが多くて・・・。
とにかく、ネットでサンプルソースを集めたよ。
シフトJISをJISに変換するサンプルソースをね。
途中で、何故にシフトJISをJISに変換しなくちゃいけないんだ??と・・・。
最初に探していたのは漢字文字をシフトJISコードの16進キャラクタ文字に
変換する方法だったはずなのに・・・。
サトーのVBのサンプルソースが悪いのだ!!
そのサンプルで何故かシフトJISをJISに変換していたのだ。
サトーに聞いた時も「シフトJISをJISに変換する方法ですよね?」と言うし・・・。
JISに変換してもイイんだけど、別に変換しなくてもイイじゃん!!
肝心なのは漢字コード(シフトJISかJIS)を16進キャラクタ文字にする事だもん。
携帯プリンターはシフトJISでもJISでもモード切り替えればOKなんだもん。
結構、その部分に騙されて、2週間近くシフトJISをJISに変換する方法を
探しては試して・・・繰り返してた。
いくつかのサンプルを試しててある事に気が付いた。
シフトJISをJISに変換するサンプルは結構あって使えるんだけど、
そこに値をセットする時に僕は正しい値で渡していないに違いない。
どうやって値を壊さずに渡せばイイんだ!?
あるHPのVC++解説講座のページが目に入った。
メチャ基本的な事を僕の知りたい内容で解説してあって、おぉこれだ!!
僕が知りたかったのはこれだ!!
それを踏まえて、試してみるとビンゴ!!
僕が欲しいと思っていた値がそこにセットされている!!
後はこれを16進キャラクタ文字に変換するだけじゃん!!
前の日に拾ったサンプルの中に重要な変換ロジックも記述されていたのよ。
あ、これ使えるんじゃないの??
16進キャラクタ文字に変換できるよ、たぶん・・・
おぉぉぉぉ~~~~~ブラボ~~~~~~~~!!
その解説講座のページを見つけて、2時間後にはハッピーになってた。
逆にいうとそのページを見つけなければ、ず~っと入り口を間違えたまま
出口の無い迷路をさまようところだったね。
結局、僕はシフトJISをJISに変換せず、
漢字文字をシフトJISコードの16進キャラクタ文字に変換することで解決。
そう、最初に僕がやりたいと思った事ね。
すげ~遠回りで解決したんだけど、どれも必要な工程だったかもね。
出来てしまえば簡単だけど、たどり着くまでは大変だ。
VC++に詳しい人が隣にいれば、何の事はないんだけどさ。
そんな人はいないわけさ・・・ネット様様だよ。
昔なら本屋に走るところなんだろうけどね。
PR