金魚ほえほえ開発日記




DxLibFanに戻る





概要

我々、ソフトを作る側としては説明書を作るのが非常に面倒。
しかもVectorに登録してある説明書製作ツールの中に、HTML出力機能がついている ものは私が探した限り発見出来なかった。
また、ライブラリ、DLLという関数セット等を作った際、関数のマニュアルをHTMLで書くのが非常に億劫だ。
ビルダーや各フリーソフトを試して見たがほぼ改善の傾向は無し。(ぶっちゃけメモ帳のほうがはかどった)
よって、"HTMLに出力するプログラマー御用達、フリーの説明書製作ツール"が必要と思った。

なので、自分で作るしかないと思った次第である。



事始め

まず、私が今まで使っていた"ほえほえ"という説明書製作支援ツールがある。
テキスト出力のみだったのHTMLの機能追加が必要と思った。また、関数の説明書製作支援機能も必要だと思った。
しかし、その製作者、フィリネ氏のHPは金魚ほえほえプロジェクト開始当初、閉鎖されていた。
なんとか、メールでフィリネ氏の連絡し、ファイル構造を教えていただけ無いだろうか?
* ("ほえほえ"は 開発当初 @Nifty DownLoadのHPで説明書製作支援ツールNo1 だった。 なので使用している人も多いと思い、読み込み機能に互換性を出せば皆さんの役に立つツールが作れると思った。)

フィリネ氏との相談の末、ほえほえの開発プロジェクトを引き継ぐ事になった。
ソースを戴きファイル構造の出力部分がないか調べていたら…構造体が無い!
良く見ると、テキストでそのまま順番どおり出力していたみたいだった。
そうだったのか。
ファイル構造が分かったとこでBorland C++で作るか、Visual C++で作るか悩んだ。
"ほえほえ"はBorland C++で作られていたのだ。
しかし、Borland C++ はほとんど使っていないので Visual C++で一からインターフェイスを変え、ガリガリと組んでいく事にした。



日記全容

Э版の開発

  • 金魚ほえほえЭは当初の目的からはずれた副産物です。
    2003/05/22
    いちおう公開してみる。
    たぶん、使ってくれる人は1〜2人くらいなんだろ〜な〜 と思い、鬱になる。最近、どうも疲れが取れない。
    さぁ、もってけ
    しかし、よく考えたら、βの開発日記で実装を予定して書いていた機能をかなり 削っているような気がする。ローマは一日にしてならずだ!!!
    2003/05/21
    って事で2003/05/20の金魚ほえほえβ版の開発日記で書いたように、 いちおう完成しましが、かなりエンジンがFoolishなんです!!!
    d金魚の頭のようにFoolishなんですよ!!!!Very Idioticalなんですよ!!!!
    VCのテキストエディットエンジンはすごいよ!と痛感してしまいました。
    ローマーは一日にしてならずでした!!!
    ぐヴぉ〜〜〜〜!!!!!!!
    そんなFoolishなソースを欲しい方がいたら掲示板にでもお知らせください。
    以上。

β版の開発

  • 開発当初

    • 2003/05/20
      なーんか何時の間にか一ヶ月経とうとしているんですけど^^;
      そうですね〜〜金魚ほえほえβの開発状況はまったくといっていいほど進行してません!!!
      ちょっと趣向を変えて金魚ほえほえЭを作っております。
      最近、ЭがAという事に気が付きました^^;
      Эが文字化けしていましたらごめんなさい。
      で、その金魚ほえほえЭはトランスレータです。
      テキストファイルの説明書から分かりやすいHTML形式と HTMLヘルプを作るために使うファイルを吐くというツールです。
      機能としては、
      • C言語の変数や関数らしきものは色分けする。
      • 専用タグに囲まれたものを色分けする。
      というとても楽チンなものです。
      さぁ!!今からがむヴぁるぞ=〜〜〜!!!
    • 2003/04/21
      なんかβ版の開発に力をいれていないせいか^^;
      なかなか完成しませんねぇ^^;
      実は、別のライブラリを試したり、boostについて調べてみたり、そんなことしているうちに
      見よ!これがメタトロンの意思だ!(謎
      のごとく現れたATL/WTL!!!
      今まで金魚ほえほえの開発に関して沈黙してたのは、 時代遅れになった(C言語ベース)のタスクエンジンのクラス化とdKingyoUtilityの開発や ATL/WTLの勉強に費やされていっているのよ!!!
      だから、モーちょっと^^;
      時間くらいくださいな〜〜。
      だってα版をUPできた一番の要因は春休みでフィーバーフィーバー(死語)出来たからなんですよ!!
      でも〜〜。ユーザーインターフェイスでちょっとタブを使うかどうか悩んでいる。
      でも、タブらしきインターフェイスは実装する予定なのでGNU って感じで期待しないでGNUGNUしといてください^^;

    • 18:20 2003/03/30
      何を書くか忘れてしまった^^;
      このころboostの存在を知る^^;
      正規表現って良さそう^^;
    • 2003/03/29
      ・コールバック関数をどうにかしてclass内に入れられないだろうか?
      しか〜〜〜し。α版のReleaseフォルダに入っている"金魚帳"はクラス内に無理やり コールヴァック関数をstaticにしてぶち込みました!
      しかし、そのせいで他の関数,変数等のメンバもすべてstaticにしなきゃいけないはめになり、 いつの間にかそのクラス内のメンバがすべてstaticになってしまいました。
      これでは駄目だ!と思い、金魚ほえほえα版ではコールバックはグローバル関数として宣言したのですが、 やっぱりグローバルだとなにかと使いにくい!
      フレンド関数にでもすればいいのかな?と思いつつもクラスのポインタ型を入れるところがないよ!
      せめてvoid *型を最後の引数に入れて欲しかったよ!MSさん!!と言いたいところだったのですが、 なんか第四引数に上手くクラスのポインタを入れる方法があるんですよ!!

      ダイアログを開く時、DialogBoxって関数(正確にはマクロ。モーダルダイアログを表示する関数)が一番楽だと思うのですが、 私はモードレスダイアログボックス派なのでCreateDialog関数(正確にはマクロ)を使うんです。
      が〜〜、しか〜〜し。DialogBoxParamって関数もあるのですよ!
      なんとダイアログを初期化の時に( WM_INITDIALOGやWM_CREATE メッセージが来た時)に第四引数に渡すポインタを設定してダイアログを表示出来るんです。
      以下に例を示します。
      2003/09/24
      警告:この方法は間違っているようです。Win9x系なら通るみたいですが、 Windows2000ではかなりやばいみたいです。
      なので、CREATESTRUCTをぶち込んでやりましょう。

      ・この日に1210氏からα版のアドバイスを戴く
      • 出力に関すること
        ・出力のプレビューをつける
        回答:
        出力プレビューは実際めちゃくちゃ簡単です。
        ShellExecute系関数を使いIEを呼び出してやれば、たしか上手く出来たはずです。
        しかし、使い勝手が悪そうなのでα版では実装は控えました。

        ・出力のフォントの設定
        回答:
        HTMLに出力するジェネレータの機能が貧弱ゆえ(かなり手抜きです)
        β版に期待してください。
      • ユーザーインターフェイス
        ・画面を右と左にわけて、左に入力スペース。右にリアルタイムプレビューとか(笑)
        回答:
        それは確かに構想にはありました。が、MFCじゃないとリアルタイムプレビューは 望めないと思い、(当時HTMLの表示はMFCのやりかたしか知らなかった,金魚ほえほえα版はWin32でがりがり組んでいる。)
        これについてはShellExecute系関数でIEに任せようかと思ってました。
        しかし、最近Win32でのやり方も分かりつつあるので実装するかは考え中です。
      • 入力
        ・ショートカットキーの設定
        回答:
        ショートカットについてはd金魚自身、コピペくらいにしか使用しないのでその知識に関してはかなり無知です。
        勉強して実装できるよう努力します。
      • ダイアログ
        ・最低動作環境と、快適動作環境の情報編集(CPU,メモリ、HD,ビデオカード、etc・・)
        回答:
        開発環境の情報を取得するやり方のサンプルをすこし持っているでなんとか頑張ってみます。

        ・ダイアログの項目を上下に動かす
        回答:
        私もそれについてはかなり問題だと思ってました。β版には改善される予定です。

        ・ダイアログに「次へ」や、「後ろ」をつけて、現在の項目のあとに、
        オススメする使い方、や、そーゆーやつ(爆)、を書く項目をつけたり。

        回答:
        いわいるウィザードですね。今はまだ、仕様が固まって無いので、このソフト自体が完璧に完成(Version1.0になったら)したら 要望の数が多ければ、実装する可能性はあります。

        ・もしくは、ダイアログにこだわらず、タブ形式で項目を設定していく。
        回答: タブはβ版で採用します。
      • オプション
        ・オプションからのショートカットキーの設定(いりませんかね)
        回答: あると便利ですね。このようなキーコンフィグの汎用クラスの設計を考えておきます。
      • その他
        ・操作は正常に終了しました、ってデバッグ用ですよね?
        回答:
        α版はところどころに無用のダイアログが表示されたり、ボタンが効かなかったりします。
        申し訳ありません。
        また、説明書もないので、初めて使った方は戸惑うかもしれません。
        ここらへん、α版なのでどうか目をつぶってください。お願いします。ペコm(_ _;m)三(m;_ _)mペコ

      19:11 2003/03/30 回答とHTMLデザイン完成

α版の開発


  • 開発終盤
    2:04 2003/03/29

    α版をUPしました!

    0:29 2003/03/29
    あうううう!!!!テキスト文章をHTMLに変換するルーチンがうまく行かないのです!
    なにがAccess Violatioinだこんちくしょう!
    失礼アクセスしまくりだっつ〜〜〜〜の!!!!
    破棄したソース
    2003/03/28 :
    開発日記をつける事にした。
    2003/03/27 :
    ファイルの読み込み書き込みがやっぱりおかしい。
    よって破棄。以下に示す

    3月中頃
    これを聞いて頑張る!
    • http://insidermedia.ign.com/media/beyondthebounds.mp3
    • http://www.zordiac.com/rpgviewer/Legend%20of%20Dragoon%20-%20Final%20Music.wma
    • クロノトリガーのMIDI
    • FF3 〜 FF10-2までのMIDI
  • 開発中頃:

    1 : 非オブジェクト指向だったのですべて組みなおす。
    2 : データの管理をどうしようかと悩む(線型双方向リスト構造にする事にした)
    3 : Win32でのListViewの使い方に悩む
    4 : d金魚汎用線形リストライブラリが完成 (dGeneralPurposeLineTypeList Library DLL)
    5 : ListViewを克服

  • 開発当初:

    1 : ファイル構造を調べる。
    2 : MFC で組んでみる (MFCで挫折)
    3 : Win32APIでがりがり組む事に決定
    4 : 猫でもわかるプログラミングでMDIの基礎を学ぶ
    5 : お手軽MDIメモ帳完成。

  • トップページに書いている駄文より金魚ほえほえの話題を抜粋
    • 金魚ほえほえをまた組みなおす予定
      今作っているソフトです。金魚ほえほえというのは。
      • ダイアログのデザインがショボク感じてきた今日この頃。
      • さらに、ローカル関数が溢れ出してさらにやヴぁくなってきた今日この頃。
      • またまた!MDIじゃなくていいじゃん!と思い出してきた今日この頃!
      • 最後に、RPGツクール2000のインターフェイスって洗練されているじゃん!と思う今日この頃!!!
      なのでまた、全部組みなおします。
      頭の中でソフトの設計はやっぱり効率が悪いようです。
      私の尊敬しているやねうらお氏のHPにも書いていました。
      しっかり設計しないと効率が上がらない! と
      いちおう今までのソースでコンパイルしたα版をそろそろUPしようと思います。
      もちろんソース付です。
      2:04 2003/03/29: UPしました!

    • 最近作っているソフトは…
      近況:私はいちおうC/C++でプログラミング関連やっているのですが、 実は、フィリネさんに頼み込んで開発が難航している説明書エディタの製作を引き継いだのです。
      そして、それのファイルフォーマットを調べてMDIインターフェイスで組みなおしているのですが、 VisualC++はやっぱり使い慣れているとはいえ、Win32APIを使って組むのはシンドいんです。
      え?MFCだって? 私は使えない!(キッパリ)
      最初のころはMFCを試しましたが、メモ帳機能の実装のみで断念。 (つーかメモ帳の作り方は前、特集をしたじゃん!
      実はボウランドシイプラスプラスなるものも若気の至り(某コンテストによる賞金を貯金しないで使ってしまった)で持っていたりするのだが、 やっぱりVCで組みたい!って事でVCでコツコツ組んでます。今はメモ帳機能、ファイル入出力の一部の実装を完了。
      一時期はListViewの実装までしたんだけど、本当に実験みたいな感じで組んでいたのでアンチオブジェクト指向になってしまい、処理構造が非常に見にくい状態になり、ぐわぁぁぁぁぁ。Access Vaiolation ...(以下略)
      で、いまクラス実装を完璧に書きなおしてます。
      できればプラグイン対応にしたいと密かに思ってます^^;期待してね^^;でも期待を裏切りそう Σ(T▽T;)
      フィリネさん見ているかな?このHP

謝辞

  • "ほえほえ"の開発を私に継続を許可,ファイル構造の質問に回答,ソースの公開をしていただきました、"ほえほえ"の開発者フィリネ氏に感謝します
  • 金魚ほえほえの初期版へのアドバイスありがとうございました。1210氏、ポッター氏に感謝します。



ダウンロード

KingyoHoeHoeЭ
金魚ほえほえЭ Version0.001 をダウンロード
お遊びで作った奴です。
詳しくは金魚ほえほえЭ開発日記を見てください。

KingyoHoeHoe α
金魚ほえほえα版をソースと一緒にダウンロード
金魚ほえほえのα版をベースにしてすべて書き換える予定です。
読めるものだったら読んで見ろ!!ってくらいひどいソースです。
GNU GPL等のライセンスを考えてみましたが、よく定義を理解してないので、GNU GPLではありません!!
このソースの著作権はd金魚にあるものとします。
(何故、こんなひどいものに主張するの?何故なら、このソースが第三者によって著作権を主張されたら私が金魚ほえほえのバージョンアップができなくなるからです。)
このソースの転載、利用は自由としますが、被害が出てもd金魚,および金魚ほえほえαの製作関係者は一切責任を取りません。
また、下のCopyRightって所をクリックして私のHPの規約をよく内容をおたしかめください。
(このソース(一部のライブラリを除く)の著作権やらなんらかの権利をd金魚以外が持っている!と主張する事を禁止します。)

掲示板に感想くれると嬉しいな^^


SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送