since : 2001.11.1 Junk Shop
DataSlim2's Room
RexDKで、データスリム2のアドインを作る。
アドインの作成が進んでいないので、RexDKの挙動をチェックしてみました。
// RexDK Test Sample 1 #include <rex/rex.h> const char taro1[] = {8,26,0x02,0x01,0x01,0x00,0x00,0x05,0x1b,0x26,0x3e,0x67,0xad,0x57,0x6f, 0xff,0xff,0xff,0xbf,0xff,0x1f,0x0f,0x03,0x04,0x08,0x08,0x10,0x00}; void main(void){ DsDisplayBitmapDraw( 10, 10, taro1, 0); while(1){ } }
Test Sample 1では、配列変数に10進、16進表記が混在しても良いかどうかと、void main(void){...}
と言う表記がコンパイルできるのか?と言うことを確認しました。
結果は、共に問題無く無事にコンパイルされました。
また、Sample 1のソースを見てもらうとわかると思いますが、//もコメント文として有効であります。
今度は、日本語が使えるかどうか実験してみます。
// RexDK Test Sample 2 // 日本語のテスト #include <rex/rex.h> extern int __LIB__ DsPrintfe(int,int,int,char *); void main(void){ DsPrintfe(10,60,0,"日本語のテスト表示"); while(1){ } }
こんな感じで予想通り文字化けしました。
そこで、上記ソースの"日本語のテスト表示"を"日本語のテスト表\示"と変更したところ、予想通り正常に表示されました。
これで、DsPrintfe()
自体一応日本語も使用できることがわかりました。
RexDKでDsPrintfe()
を使用するためには、include類の後に次の一行を入れておく必要が有ります。
extern int __LIB__ DsPrintfe(int,int,int,char *);
文字化けの原因は2byt文字の2byt目が0x5c(半角\記号)になっているためです。
回避方法は、2byt目が0x5cになっている文字の後ろに\を入れる事で回避できます。
ちなみに次の文字が該当します。
Copyright 2001-2002 Hideo Morotomi(Shift-JISにおいて2byt目が0x5cになっている文字)
表 予 ソ 十 ― 暴 構 能 貼 申 噂 饅 兔 x 欺 圭 蚕 曾 箪 禄
浬 喀 媾 彌 拿 杤 歃 濬 畚 秉 綵 臀 藹 觸 軆 鐔 鷭 x Ы IX(IXに相当する2バイト文字)