Armadilloフォーラム

cursesの使用について

hondah

2017年6月5日 20時08分

いつもお世話になっております。本田と申します。

cursesを利用したサンプルプログラムを動かしたいのですが、
うまくいっておりません。
ATDEでのコンパイルでは「日本語:ハンカクカナ:ASCII00」と表示されているのですが、
クロスコンパイル後、Armadillo上では「~SM-z~V{~LM-j: :ASCII00」と表示されてしまいます。
sjisのファイルのcat等は特に文字化けすることなく表示されています。

ロケールかカーシスの設定だと思うのですが、何をすれば良いのか分からず・・・。

以下コンパイル方法とサンプルプログラム

コンパイル
gcc -O -g -finput-charset=cp932 -fexec-charset=cp932 -DLINUX -D_GNU_SOURCE -I/usr/include -o sample sample.c -lncursesw

クロスコンパイル
arm-linux-gnueabi-gcc -O -g -finput-charset=cp932 -fexec-charset=cp932 -DLINUX -D_GNU_SOURCE -I/usr/arm-linux-gnueabi/include -o sample sample.c -lncursesw

サンプルプログラム
#include
#include

int main()
{
setlocale( LC_ALL, "" );

initscr();
int x = 0;
int y = 0;
for(;;){
clear();
move( y, x );
addstr( "日本語:ハンカクカナ:ASCII00" );
refresh();
switch( getch() ){
case 'q' : goto EXIT_FOR;
case 'k': --y; break;
case 'j': ++y; break;
case 'l': ++x; break;
case 'h': --x; break;
}
}

EXIT_FOR:
endwin();
return 0;
}

ATDE5 v20161130(i386)
Armadillo410(Atmark-dist 20160927,Armadllo-440)

こちらを参考にロケールを設定
https://armadillo.atmark-techno.com/forum/armadillo/2232

コメント

hondah

2017年6月12日 9時56分

ソースが不十分でしたので、添付いたします。

ファイル ファイルの説明
sample2.c