OSASKページで、OSASKアプリを公開しています。
makeエラー (2006-04-01)
tolset08を使っています。
static int a(double x) { if (x < 0) return x + 0.5; }
というコードがエラーになります。
> make make -r hturtle.bin make[1]: Entering directory `C:/osask' sjisconv -s hturtle.c hturtle.ca cc1 -I. -Os -quiet -o hturtle.gas hturtle.ca gas2nask -a hturtle.gas hturtle.nas skip:fucomp %st(1) make[1]: *** [hturtle.nas] Error 1 rm hturtle.gas hturtle.nas hturtle.ca make[1]: Leaving directory `C:/osask' make: *** [ALL] Error 2
それで x < 0 を x > 0 にするとエラーはなくなります。
static int a(double x) { if (x > 0) return x + 0.5; }
> make make -r hturtle.bin make[1]: Entering directory `C:/osask' sjisconv -s hturtle.c hturtle.ca cc1 -I. -Os -quiet -o hturtle.gas hturtle.ca gas2nask -a hturtle.gas hturtle.nas nask hturtle.nas hturtle.obj obj2bim3 @guigui00.rul out:hturtle.bim stack:64k map:hturtle.map hturtle.obj bim2bin3 in:hturtle.bim out:hturtle.org malloc:256k mmarea:0 bim2bin3 -osacmp -tek0 in:hturtle.org out:hturtle.bin rm hturtle.gas hturtle.nas hturtle.ca make[1]: Leaving directory `C:/osask'
原因は分かりますでしょうか? return x + 0.5 もエラーの要因になっているような雰囲気です。
lib_opentextbox の opt
lib_opentextbox の opt 引数についてなんですが、introa12 の helloc4.txt を読むと、
opt == 0x1000 のとき ウィンドウタイトル専用のテキストボックスを作り、opt == 0x0000 のとき一般のテキストボックスを作りますと書いてあります。
introa12 の helloc4.c の 26 行目 では
textbox = lib_opentextbox(0x0000, AUTO_MALLOC, 0, 12, 1, 16, 16, window, 0x00c0, 0);
となっていて、helloc4.txt に書いてある内容で理解できます。
ですが、introb10 の dwblkc0.c の 42 行目では、
textbox = lib_opentextbox(0x0001, AUTO_MALLOC, 0, 18, 16, 0, 0, window, 0x00c0, 0);
となっていて、opt が 0x0001 になっています。opt が 0x1000 と 0x0000 以外の値を
指定した場合には、どういう意味があるのでしょうか?
簡単な実験をしてみました: opt をそれぞれ 0x0000 と 0x0001 に設定したテキストボックスを作ってみたのですが、
0x0001 の方は外枠(?)が立体的に見えるようになるくらいの違いしか分かりませんでした。
lib_opentextbox において、opt を 0x0000 または 0x0001 に指定した場合の違いは、
単に外枠の描画の仕方が異なるだけという認識で正しいですか?