◀ANSI版開発トップへ
  • 3078 内部データの一元管理
  • [3078] 内部データの一元管理 wmlhq 2003年09月03日 13:41

    コマンド関数の数が増えてきて、管理が難しくなったので、
    データをプリプロセッサとsed, grep, gawk, sortなどで一元化したい。
    具体的には、次のような単純カンマ(,)区切り(CSV)のテキストファイル
    funccode.txtを用意して、マクロ関数DEFMACROFCを
    #defineした後、そのファイルを#includeして使うことになる。

    // Format: DEFCMDFC(,Category,FID,FValue,FNName,Tip,fSupported,) // Comment
    DEFCMDFC(,File,F_OPENFILE,254877,FileOpen,新規作成,TRUE,) // 2004/08/25 間抜けなコードを追加。
    DEFCMDFC(,Edit,F_CUT,55885,EditCut,切り取り,TRUE,) // 2005/74/35 とりあえず元に戻した。
    ...

    そうすれば、原始的な一元管理ができ、CSMacroMgr.cppで
    配列の要素を吐き出したり、Funccode.hでconst intを
    吐き出したりできる。また、これは再利用や変換が容易だ。
    並べ替えなどでbsearchの検索効率がアップし、見通しがよくなる。

    展開方法は<windowsx.h>のHANDLE_MSGを参考に。なお、この技術は
    gccのソースから拝借した。