Skip to content

Latest commit

 

History

History
87 lines (68 loc) · 3.17 KB

File metadata and controls

87 lines (68 loc) · 3.17 KB

AviUtl2ダークモード化MODの開発者向けドキュメント

設定

  • common.propsmmd_dirを書き換える。
    <mmd_dir>ここをaviutl2.exeがあるフォルダのパスに書き換える</mmd_dir>

開発環境

  • Windows 11 Home
  • Visual Studio Community 2022

プロジェクトの設定

  • x64
  • UNICODE文字セット

外部ライブラリ

  • AviUtl ExEdit2 Plugin SDK root\source\aviutl2_sdk
  • detours root\source\detours
  • JSON for Modern C++ root\source\nlohmann

内部ライブラリ

  • 汎用ライブラリ root\source\common\my
  • 書式化ライブラリ root\source\common\sprintfmt

絵文字

  • 🎉初回。
  • 💥大規模な機能や仕様の変更。
  • ♻️小規模な機能や仕様の変更。
  • 🚀大規模な機能の追加。
  • ✨中規模な機能の追加。
  • ⚡️小規模な機能の追加。
  • 🔥機能を削除。
  • 🩹問題に対応。
  • 🎨UIの変更。

コーディングパターン

  • スネークケース。
  • 定数にはc_を付ける。
  • classprivateprotectedpublicは可能な限り使用しない。
  • booltruefalseはなるべく使用しない。
  • コンストラクタ、デストラクタ、例外処理はなるべく使用しない。
  • 初期化と後始末が必要なクラスにはinit()とexit()を定義する。
  • caseの本体が複数行なら{}で囲む。
  • {はなるべく次の行に書く。
  • /**/は使用しない。
  • クラス、関数、変数のコメントは次のように書く。ただし、この関数はこの変数はは省略する。(数が多すぎるので)
	//
	// このクラスは〇〇です。
	//
  • 処理に対するコメントは次のように書く。
	// メッセージボックスを表示します。
	::MessageBoxW(nullptr, L"hoge", L"foo", MB_OK | MB_ICONWARNING);
  • ソースファイルの拡張子はcppにする。
  • ヘッダーファイルの拡張子はhppにする。
  • プロジェクトには必ずmain.defmain.cppを作成する。
  • ソースファイルは可能な限りmain.cppのみにする。
  • ヘッダーファイルでは他のファイルをインクルードしない。
  • main.cppで必要なすべてのヘッダーファイルをインクルードする。

プロジェクトの主な構造

  • Hive データを保持する。プロジェクト全体から参照される。
  • HookManager フックを管理する。
  • AddinWindow AviUtlプラグインウィンドウのように動作する。
  • AddinDialog アドインウィンドウにコントロールを配置するための子ウィンドウ。
  • ConfigIO プロジェクト全体の設定を読み込み・保存する。ほぼプロジェクト全体を参照する。
  • App インターフェイスを実装し、他のクラスから相互参照される。
  • Addin プロジェクト全体を参照する。他のクラスからは参照されない。
  • 依存関係は次のようになることが多い。Addin->App->ConfigIO->その他のクラス->Hive

設定ファイル

  • ファイルなしが初期値。
  • なるべくJSONを使用する。