例題のページで用いられているcpp2htmlのC++版を掲載します。 cpp2htmlは、C及びC++で書かれたソースファイルをHTMLへと変換します。 用意したファイルは、コンパイルして実行ファイルとして利用が可能な他、宣言されているクラス(CCpp2Html)を用いて他のソフトにも組み込むことが可能です。
ソースのダウンロード(リンク先にはcpp2htmlにより変換されたHTMLファイルが表示されます。):
実行時の引数は以下のようになります。
Gami[488]% cpp2html USAGE: cpp2html srcfile [-disp] [-plain] [-out htmlfile] [-t n] [-no] option: -disp output to display (default _cpp.html file). -plain do not display HTML header and footer. -t n tab order (insert n spaces instead of a tab) -out htmlfile output filename -no display line number Gami[489]% |
cpp2html.cpp の記述にはmain()関数が記述されていますので、他のファイルからCCpp2Htmlのクラスを利用するにはcpp2html.cpp内のmain()関数の記述を削除する必要があります。もしくは、下記のように記述されているmain部の上の USE_LIB の宣言のコメントアウトを外すことにより他のファイルから利用することが可能となります。
//----------------------------------------------------------------- // main 関数として使用時 //----------------------------------------------------------------- //#define USE_LIB --> この部分のコメントアウトを外す #ifndef USE_LIB int main(int argc,char* argv[]) { CCpp2Html* c2h = new CCpp2Html(argc,argv); if(!c2h->ReadCode()) return 0; if(c2h->Convert()) c2h->WriteCode(); delete c2h; return 0; } #endif |
コンパイル: |
Gami[488]% g++ -o exp1 cpp2html.cpp common.cpp exp1.cpp |
例題(exp1.cpp) |
01: #include <stdio.h> 02: #include "cpp2html.h" 03: 04: int main(int argc,char* argv[]) 05: { 06: CCpp2Html c2h(argc,argv); 07: if(c2h.ReadCode()) { 08: if(c2h.Convert()) 09: c2h.WriteCode(); 10: } 11: return 0; 12: } |
コンパイルには以下のような makefile を準備すると便利です。
SRC = exp1 OBJS = common.o cpp2html.o $(SRC).o COMP = g++ FLAG = -lm all: $(OBJS) g++ -o $(SRC) $(OBJS) $(FLAG) |
一括変換用Perlスクリプトファイルの数が多く一括して変換したい場合には、VC++等でのGUIを作成すれば良いのですが、cygwin環境で一括して変換することができるように、perl用のスクリプトを準備しました。 実行手順:
src2html.pl [download]
|