RexDK編 part 5

RexDKで、データスリム2のアドインを作る。

ちょっと実験

アドインの作成が進んでいないので、RexDKの挙動をチェックしてみました。

テスト1

// 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のソースを見てもらうとわかると思いますが、//もコメント文として有効であります。

テスト2

今度は、日本語が使えるかどうか実験してみます。

// 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){
    }
}

こんな感じで予想通り文字化けしました。

screen sample

そこで、上記ソースの"日本語のテスト表示"を"日本語のテスト表\示"と変更したところ、予想通り正常に表示されました。

これで、DsPrintfe()自体一応日本語も使用できることがわかりました。

RexDKでDsPrintfe()を使用するためには、include類の後に次の一行を入れておく必要が有ります。
extern int __LIB__ DsPrintfe(int,int,int,char *);

文字化けの原因は2byt文字の2byt目が0x5c(半角\記号)になっているためです。
回避方法は、2byt目が0x5cになっている文字の後ろに\を入れる事で回避できます。

ちなみに次の文字が該当します。

(Shift-JISにおいて2byt目が0x5cになっている文字)

表 予 ソ 十 ― 暴 構 能 貼 申 噂 饅 兔 x 欺 圭 蚕 曾 箪 禄
浬 喀 媾 彌 拿 杤 歃 濬 畚 秉 綵 臀 藹 觸 軆 鐔 鷭 x Ы IX(IXに相当する2バイト文字)

Copyright 2001-2002 Hideo Morotomi
感想、要望は、moro@deneb.freemail.ne.jp又は、掲示板へお願いします。
個人的にはMAILより掲示板に書きこんでもらえた方が嬉しいです。
当Web Site に関する補足事項