西川-本のテスト

aiueo

+ aiueo


New Page

aiueo

  1. aioue
  2. huid

aiueo

aejo


a

aoiuehpihps '

s

Doxygenで生成

ソースコードから自動的にドキュメントを生成するツール。

⚠️下記のzennのサイトを参考にすべし。

DoxygenGUI frontendでグラフィカルに設定できるよ

就活には自動生成ドキュメントが効くらしい

設定ファイルを生成


doxygen -g

カレントディレクトリに、Doxyfileという名前で出力される。

設定ファイルを編集


Doxygen + Graphviz を使って呼び出し依存関係図を生成する - Posts - Seaside Laboratory

項目名 意味 設定例
PROJECT_NAME プロジェクト名 "Knuckle Fighter Maniax"
OUTPUT_DIRECTORY ドキュメントの出力先 "C:\My Program\doxygen"
OUTPUT_LANGUAGE 出力言語 Japanese
FULL_PATH_NAMES 出力ファイル名をフルパスにする NO
OPTIMIZE_OUTPUT_FOR_C C 言語に最適化 YES
EXTRACT_ALL 全てを展開 YES
INPUT ソースファイルのパス "C:\My Program"
INPUT_ENCODING ソースファイルの文字コード SHIFT_JIS
FILE_PATTERNS 対象とするファイル *.cpp *.h
RECURSIVE サブディレクトリーも含める YES
VERBATIM_HEADERS ドキュメントにヘッダーを引用 NO
GENERATE_TREEVIEW ツリービューの利用 YES
ENUM_VALUES_PER_LINE 列挙型を行に並べる数 1
GENERATE_LATEX LATEX 版の出力 NO

ドキュメント作成


doxygen

Doxygenでクラス図の表示

【Windows】Doxygenをインストールして使う | The modern stone age. 上記を参考に。

↓これを出力先とかいい感じに変えて使って

Doxyfileの設定

項目名 意味 設定例
PROJECT_NAME プロジェクト名 "Knuckle Fighter Maniax"
OUTPUT_DIRECTORY ドキュメントの出力先 "C:\My Program\doxygen"
OUTPUT_LANGUAGE 出力言語 Japanese
FULL_PATH_NAMES 出力ファイル名をフルパスにする NO
OPTIMIZE_OUTPUT_FOR_C C 言語に最適化 YES
EXTRACT_ALL 全てを展開 YES
INPUT ソースファイルのパス "C:\My Program"
INPUT_ENCODING ソースファイルの文字コード SHIFT_JIS
FILE_PATTERNS 対象とするファイル *.cpp *.h
RECURSIVE サブディレクトリーも含める YES
VERBATIM_HEADERS ドキュメントにヘッダーを引用 NO
GENERATE_TREEVIEW ツリービューの利用 YES
ENUM_VALUES_PER_LINE 列挙型を行に並べる数 1
GENERATE_LATEX LATEX 版の出力 NO

Graphviz関係の設定

項目名 意味 設定例
HAVE_DOT dot ツールの有無 YES
DOT_NUM_THREADS グラフ生成時のスレッド数 4
UML_LOOK 継承図を UML 風にする YES
CALL_GRAPH 呼び出し依存関係図の生成 YES
CALLER_GRAPH 呼び出し元依存関係図の生成 YES
DOT_PATH dot ツールの位置 "C:\Program Files\Graphviz\bin”
設定項目 説明
--- ---
OUTPUT_DIRECTORY ドキュメントの出力ディレクトリ。
OUTPUT_LANGUAGE ドキュメントの出力言語。
OPTIMIZE_OUTPUT_JAVA Java向けに出力を最適化するかどうか。
EXTRACT_ALL 全てのメンバーを抽出するかどうか。
EXTRACT_PRIVATE プライベートメンバーを抽出するかどうか。
EXTRACT_PRIV_VIRTUAL プライベートな仮想メンバーを抽出するかどうか。
EXTRACT_PACKAGE パッケージメンバーを抽出するかどうか。
EXTRACT_STATIC スタティックメンバーを抽出するかどうか。
EXTRACT_LOCAL_CLASSES ローカルクラスを抽出するかどうか。
INPUT ソースファイルの入力ディレクトリ。
RECURSIVE 入力ディレクトリを再帰的に検索するかどうか。
REFERENCED_BY_RELATION 被参照関係を生成するかどうか。
REFERENCES_RELATION 参照関係を生成するかどうか。
ALPHABETICAL_INDEX アルファベット順の索引を生成するかどうか。
GENERATE_LATEX LaTeX形式のドキュメントを生成するかどうか。
UML_LOOK UMLスタイルの図を生成するかどうか。
UML_LIMIT_NUM_FIELDS UML図に表示するフィールドの最大数。
TEMPLATE_RELATIONS テンプレートの関係を表示するかどうか。
CALL_GRAPH 呼び出しグラフを生成するかどうか。
CALLER_GRAPH 呼び出し元グラフを生成するかどうか。
DOT_IMAGE_FORMAT DOTグラフの出力フォーマット。
DOT_GRAPH_MAX_NODES DOTグラフに表示する最大ノード数。

文字コード概要

C言語の場合

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int main()
{
    /* 2つの文字列を結合する:C言語*/
    const char* strA = "Hello, ";
    const char* strB = "world.";

    /* 領域確保 */
    char* strC = (char*)malloc(strlen(strA) + strlen(strB) + 1);

    strcpy(strC, strA); /* strAをstrCにコピー */
    strcat(strC, strB); /* strBをstrCに結合 */
    puts(strC);

    if (strcmp(strC, "Hello, world.") == 0) /* 比較 */
    {
        puts("ok.");
    }
    free(strC); /* 領域解放 */
}

C++の場合

#include <iostream>
#include <string>

int main()
{
    // 2つの文字列を結合する:C++
    std::string strA = "Hello, ";
    std::string strB = "world.";

    std::string strC = strA + strB; // 結合
    std::cout << strC << std::endl;

    if (strC == "Hello, world.") // 比較
    {
        std::cout << "ok." << std::endl;
    }
    // 確保された領域は自動的に解放される
}

文字コード


昔の文字コード


ASCIIコード

今流行りの拡張


MBCS : Multi Byte Character Set

C 日本語文字列 - yonewiki

WSC : Wide Character Set

マルチバイト文字とワイド文字

DrawTextとDrawTextLayoutの違い

テキストを描画する方法 - Win32 apps

DrawText

DrawTextFormat