※ここで使用しているCWCCは、Version.0.1.5.Druft版です。
- さて、Hello Worldは10行以下のプログラムか!?
少々難航したが、CWCCの試作版は完成した。さて、問題は、HelloWorldのプログラムは、本当に10行以下で書ける様になったのだろうか?答えは、サンプルを見て貰えば分かる様に、かなり余裕をもって10行以内である。
サンプルのユーザプログラム部分
#include "cwcc.h"
int CwccMain(char *argv)
{
CwccPrint("HelloWorld\n") ;
return(1) ;
}
|
ユーザプログラム部分は小さいけど、ファイルを色々用意しなくちゃいけないみたいで、やっぱり扱い辛いじゃん!などとは言いっこ無しなのである。これについては、次項辺りで、ちょっとした試みを行う予定だが、これで解決するだろう。
CWCCサンプル01
- 拡張性が有るのか?
Hello Worldを表示するまでは問題無いのである。問題は、CWCCを使えば、ここから拡張して、実用的なプログラムが書けるのか??という話になってくるのだが、CwccMainにて扱える関数は、標準関数であれば何でも使えるし、FILEだろうが、シリアルポートだろうが、ユーザ関数だろうが、自由に使える筈だし、勿論クラスも使用出来るので、とりあえず、「何とかなる」であろう。サンプルの方に、ちょっとした例を示してみたので、こちらを参照すれば、「何とかなる」の意味が分かるだろう。また、CWCCは現行試作版であり、今後、拡張を続けるつもりであるから、更に多彩な処理がシーケンシャルに書ける様になる筈である。
CWCCサンプル02
追記:サンプルで、windows.hをインクルードして、wsprintf()で実数(浮動小数点数,double等)を文字列に変換しようとしたら、変換出来なかったのである。%lfにしても、%fにしても駄目なのだ。もしや??と思って、他のWindowsアプリでも試したが、やっぱり駄目だったのだ…。この関数は、浮動小数点数を扱えないのだろうか??若しくは、フォーマットが違う??気が向いたら調査しよ!
- CWCCの問題点
試作版仕様書に今後の改版予定として挙がっている以外に、現状分かっている問題点と、課題を、列挙しておく。
- まずはクラス化
早めにクラス化しておかないと、拡張していくと収集が付かなくなりそうなのだ。これが第一課題だな。
- エディットの更新タイミング(ドロップアウト処理)
エディットに追加を繰り返していくと、そのうち溢れてしまうので、何らかのタイミングで、ドロップアウトの処理をしなければならない。
- CwccPrint→CwccPrintf化
検討中
- CwccPrintの高速化
現状、CwccPrintの処理で、スレッドを一時停止しているが、若干でも高速化を計るため、データをメールボックスから引き上げたら、スレッドを再開させる様にしたい。
- CwccGetsで表示されるボックスの位置
現状の仕様では、入力用ダイヤログが、コンソールの真上に表示されるので、コンソールが見辛い。
→位置を変更で検討中
- CwccGetsを連続で使用すると終了出来ない
サンプル02の様に、連続で入力ダイヤログを表示させると、モーダルダイヤログを使用するので、メインのウインドウの方に処理が移らず、強制終了等が出来なくなる。
→必ず、出口を造らなければならない。
- ファイル等の後始末
ファイルを開いている時に、スレッド側から強制終了された場合の処理が無い。
本来は、ファイルクラスを使用して、強制的に、これを使用させるのが良いと思うが、
とりあえず、保護策として、スレッド終了時には、全てのファイルを閉じる処理を追加したい。
- コンソールのフォントや色を変えたい
→検討中
- CwccYesNoBoxの追加
YES/NOボタンを持つダイヤログ(MessageBox)の結果を取得したい。
→検討中
- 画面クリアボタンの追加及びCwccCls関数の追加
→検討中
|