あまつぶ

2.9 1:00 【Single Segmentじゃないコードリソース】

 タイトルの文字の色をちょっと変えてみた。薄すぎて見にくいといけないなと思って。まあたいしたタイトルじゃないのでどうでもいいかなと思いつつ……。
 それはそうとついにカウンタが80000を突破。半分の40000までは1年かかったのだけどそこから40000は3ヶ月かからなかった。このペースなら来月中には100000なんてことが可能なのかなと思いつつ、、果たしてどうなることやら。ま、それまでにはカウンタの桁数を1つ増やしておかなければ(笑)。

 予告通りSingle Segmentじゃないコードリソースの話。といってもたいして書くことがあるわけじゃないのでちょろっと触れるくらいかな。例の電卓でnum2decだとかdec2strだとかを使おうと思ったら「illegal single segment 32-bit refernce」とかいわれてしまってどうにもメイクできないのでCode ModelをSmallに、Link Single Segmentをチェックなしに、68K Targetの「Extended Resource」にチェックを入れて作成。実行も問題なく行えた。
 以前にコードリソース内からsprintfを呼ぼうとして挫折したことがあったけどこの方法を使えばできそうな気がする。Extended Resourceってのがどういうものでどういう環境で使用可能なのかというのはよくわからないけどKT7でも問題なかったのでおそらく大丈夫だろう。ま、でも若干気になるので機会があればこのあたりのことも調べてみた方がいいかしら。どこを読んだら書いてあるのかよくわからないのが問題だが(^^;;;

 で、電卓の方は、括弧の前のかけ算記号を省略可能なようにしてみた。かけ算/割り算をチェックするルーチンで括弧の記号が来ていたらかけ算記号が省略されていると思って処理と。意外と楽にできた。それから16進数の計算では内部でlong/longの分数で計算することにして$FFFFFFFFが-1にならない問題も一応解決。
 あとはエラーの場合にエラー内容をクリップボードに戻すようにしてみたけどこれがいいかどうかは微妙なところかな。まあエラーが出ているのだから式のどこかを変更しないといけないわけだからクリップボードの内容を変更してしまってもおそらく問題ないだろうと思うけど。問題は2回連続してFKEYが実行された場合で、最初にエラーを返しているから2回目は必ず「無効な文字が……」というエラーになってしまう。エラーの場合には先頭になにか記号をつけることにしてその記号で始まっている時は内容を変更しない……なんてことも必要かも知れない。
 あと、せっかく16進数で計算ができるんだからAND/OR/XOR/NOTくらいはサポートしたい気がする。問題はやはり内部でdouble_tで計算しているとやりづらいということか。まあ10進数で計算している時にANDとかあんまり使わないと思うので気にしないで16進数での計算の時だけサポートするというのでも構わないけど。あとはMODとかGCDとかもあればあったで便利かなと思う。まあ言い出したらSINとかもほしい……とかそんな話になってしまいそうなのでこんなもんにしておこう(笑)。

 JPEGのは、スクロールバーを作ってスクロール、、がまだうまくいかない。THINK Cを読んで同じようなルーチンを書いてみたのだが、最初の状態からスクロールさせる時はうまくいくけど2回目以降がどうもおかしいみたい。なにがまずいのかなぁ……。たしか本についていたフロッピーにソースが全部はいっているはずだからどうにもわからなければそのあたりをチェックしてみないといけないかな?

to February 8, 1999 ↑ to February index → to February 10, 1999