SWIGの3

callbackをdelegateに繋ぐテスト

ポインタをswigにそのまま解釈させると、型と型*の区別が出来ないらしく、delegateの先を渡そうとしてこけていた。
inのtypemapでcallbackのポインタを直接渡すようにして解消。

ついでに、コールバックで渡すオブジェクトのポインタをカスタムマーシャラでc#側のオブジェクトに変換。

結構あっさり動くなぁ

SWIGの2

とりあえず、typemap で LPBYTEをbyteにマッピングしてみたけど、いまいち正しく渡ってないのと調べるのが面倒になってきたので、std::vector に切換え。まあ、SWIGが作った独自クラスのコンストラクタにbyte 直接渡せるから思ったより気持ち悪くなかったです。

次に、callbackのdelegete化に挑戦。typemapはさらっと書けたけど、このcallback、呼出し元のクラスのポインタ渡す仕様にしてたけど、このへんどうするかなと悩み中。まあ、C++の方の仕様もいじれるので、いざとなったら変えるか。

SWIG思った以上に楽しいw

SWIG

WM6では、C++/CLIが使えないらしいので、SWIGで代用できないかなぁとチャレンジ中。
とりあえず、Desktop用で使えるかテスト。

インターフェイスファイルをさらさらっと書いて、動くには動くけどスマートじゃないなぁと、typemapについて調べ中。
LPBYTE が、byte[] になってくれるようにマッピングしたいんだけどなかなか思うようにならないなぁ

vector使う手もあるけど、独自クラスになっちゃうので、あんまり気持ちよくない。

あとは、コールバックをデリゲートにしたいなぁとか、その他の部分は予想以上にさらっとSWIGがラッパーを書いてくれた。
恐るべし。
これで、WMでは動かないとかだと困るな、チェックしておこう。

ヤフーの形態素解析

Yahoo! デベロッパーネットワークの日本語形態素解析Webサービスで遊んでみた。
とりあえず、さくっと、yahoo.comの方にあった、RESTをPOSTしてもらってくるC#のサンプルをなぶる。
2時間くらいで形になった。
POSTで投げてXMLDocumentに読込んだだけなので、特に難しいことはしてない。

これをつかってテキストにふりがな(ルビ)振ろうと思ったんだけど、これだと単語全体の読みが帰ってくるからそのままだと、
「飼い鼬鼠」(かいいたち)とかの時に、「かい/い/たち」か「か/い/いたち」かを機械的に判断できないかなぁと
鼬鼠がいたちだってわかれば簡単だけど、なんか別のモノと複合させてみるかな……

試した……飼い鼬鼠の場合は2単語に分かれるから問題ないのか、だとすると「振り切る」とかそういうので、かなが連続するパターンはあんまり無いかな