WindowsCE内部での文字コードはUNICODE

投稿者: | 2005年11月26日

WindowsCE内での文字コードはUNICODEである。UNICODEはすべての文字が2バイトで表現される。
CString型の文字をChar型にキャストする際に、メモリ割り当てするためにバイト数を取得しようと

char *p = new char[work.GetLength()];

としたのだが、GetLength()で得られるのは文字数であり、このままでは、十分なメモリ確保ができない。
これに気付かず、エラーの連続だったのだ。
で、メモリ確保は、

char *p = new char[work.GetLength()*2];

とした。これで、エラーは出なくなった。
このあたりのことは、
Windows CE FAN の記事に詳しい。