画餅展覧会

2008 年 12 月 31 日

jk78 ChooseIM公開

カテゴリー: JISかな入力パネル, W-ZERO3, Windows Mobile — jk78 @ 7:44 PM

ChangeSIPにGUIが付いていないのがあまりに惜しいので、自分で作ってみました。起動時に入力パネルを選択するプログラムです。

リストの中から入力パネルを選んでOKを押すと、自動的にスタートアップへショートカットを作成します。

また、キーボード配列の情報を調べていて知ったのですが、Windows Mobile 5は、登場当初から入力パネルの認識に難があることが知られており、それを回避するために、起動時に入力パネルをロードするユーティリティが開発されたということでした。入力パネルの選択だけだとあまりに芸がないので指定した複数の入力パネルを起動時にメモリーにロードする、いまさら感たっぷりの機能もつけてみました。

ページはこちら

JISかな入力パネルを標準パネルに設定するとトんだり、W-ZERO3[es]で認識が難しかったりするのに負い目を感じていたので。これでソリューションを提供できました。しかしGUIって面倒。ChangeSIPは、おそらく30行ぐらいのプログラムだと思いますが、こちらはオーバー1000行。。。

HTML Control逍遥

カテゴリー: C++, Programming, Windows Mobile — jk78 @ 6:01 PM

WindowsCEにはHTML Controlというのがあって、Controlの中にHTMLコンテンツを表示してくれる。これはCE 1.0からサポートされている。
ああ、GPLをダイアログにきれいに表示したかったんだよな、と思っていたので、調べてみることにした。
(続きを読む…)

eVC4: /GXオプションとatlcom.hでLNK2019エラー

カテゴリー: C++, Programming, Windows Mobile — jk78 @ 11:40 AM

eVC4でSTLを使おうとして #include <vector> などとした途端に warning C4530 の嵐をもらう話は以前にした。で、ちまちまと構成ごとに /GX オプションをつけて回るのだが、今回、/GX オプションをつけてコンパイルするファイルが atlcom.h をインクルードしていると、リンク時にエラーが発生する事に気が付いた。発生するエラーは、LNK2001 または LNK2019 で、次のようなエラーをたんまり出してくれる。

comstl.obj : error LNK2019: unresolved external symbol "void __stdcall `eh vector destructor iterator'(void *,unsigned int,int,void (__thiscall*)(void *))" (??_M@YGXPAXIHP6EX0@Z@Z) referenced in function "public: void * __thiscall ATL::CComTypeInfoHolder::stringdispid::`vector deleting destructor'(unsigned int)" (??_Estringdispid@CComTypeInfoHolder@ATL@@QAEPAXI@Z)

何が怒られているのか、さっぱり分かりましぇん(笑)。情報としてはこれが関係しているかもしれないが、よく分からん。

どうせeVC4では例外など使えないのだから、/GX オプションをはずしてしまえばよいのだが、C4530の嵐も見たくない(笑)。だったらコンパイルオプションで警告抑制してしまえ! ということでEmbedded Visual C++ Programmer’s Guideを見ると /w (warning level) オプションというのがあって、「/wd4100 disables warning C4100.」とか書いてある。おお、そうか! と /wd4530 を付けてやると今度は

Command line warning D4002 : ignoring unknown option '/wd4530'

だとorz

マイクロソフトさんのやることは一時が万事こうだから。あたしゃ遊びでやってるだけだから、嫌んなたっら止めるだけだけど、職業でこれをやってる人には、心から同情しちゃいますね。

で、今回の解決策は、

#pragma warning(disable:4530)
#include <vector>
#pragma warning(default:4530)

ということでした。ちゃんちゃん。

古い投稿 »

Powered by WordPress