Hatena::ブログ(Diary)

hishidaのblog このページをアンテナに追加 RSSフィード

プロフィール

hishida

hishida

EB series support page 管理人 ブログ

2010-07-05

[][] Android NDK

本来ならAndroidエミュレータ上でのPDIC miniが動いていないといけない時期だが、ある問題で一週間足踏みしていた。今日やっとPDIC Unicode版の英辞郎119が検索できるようになった。ちょっとうれしいぞ。

f:id:hishida:20100705152118p:image

f:id:hishida:20100705152119p:image

今回遭遇した問題とは、

【現象】wcslenがどんなwchar_t文字列に対しても必ず1を返す

【理由】gcc ではwchar_tは4byteで定義されているのに、android NDKでは1バイトとしてライブラリコンパイルされている。まぎらわしいことに、wchar.h自体は存在しているが、どのwcs*関数も正常に動かないので使ってはいけない。

sys/cdefs.h の該当箇所↓

/* our implementation of wchar_t is only 8-bit - die die non-portable code */

#undef __WCHAR_TYPE__

#define __WCHAR_TYPE__ unsigned char

【対策】wcs*関数を独自に実装する必要がある。

なお、C/C++側からGetStringChars()で取得したJava側のUnicode文字列(jchar)は2バイトなので注意!

sizeof(wchar_t)=4

sizeof(jchar)=2

今全力でAndroidに没入中なので、iPhone版の開発は中断しています。

[] HT-03A

テスト用の実機としてHT-03Aヤフオクで入手。

SIMが刺さってないと起動しないのね。うーん、SIMを手に入れないと。