番外編01:INIファイルの読み込み
(G)さん のコメントに対する講座です。C++でINIファイルを読みこむために、inimoniというツールを使用します。これはINIファイルからソースコードを自動生成してくれる便利なツールです。(inimoniの使い方は省きます。)inimoniで生成されたヘッダファイルをVC++でソリューションに追加します。これで準備が整いました。ソースコードを書き始めます。Ats.cppの上部でヘッダファイルをインクルードします。#include "ヘッダファイル名"Ats.h内にクラスを定義します。クラス名 g_ini; //INIファイル読み込みクラスINIファイルを読み込むタイミングはGetPluginVersion内がよいでしょう。INIファイル読み込み用の関数”LoadINI”をAts.cpp内に作り、GetPluginVersionから呼び出します。以下に読み込み用関数のサンプルソースを書きます。bool LoadINI(){HANDLE hModule; //モジュールハンドル char filePath[ _MAX_PATH + 1 ] = _T( "" ); //ファイルパス格納 char *posIni; //検索文字列へのポインタ bool loadCheck; //INIファイルのロードに成功したかどうか //Ats.dllのファイルパスを取得 ::GetModuleFileName((HMODULE)hModule, filePath, _MAX_PATH ); //パスから.dllの位置を検索 posIni = strstr(filePath, ".dll"); //.dllを.iniに置換 memmove(posIni, ".ini", 4); //INIファイルをロードして結果を取得 loadCheck = g_ini.load(filePath); //INIファイルのロードに失敗した場合 if (loadCheck == false) { //ロード失敗 return false; } //ロード成功 return true;}これでINIファイルの値がINIファイル読み込みクラスに読み込まれます。あとはINIファイル読み込みクラスから値を引っ張ってくればいいだけです。これはInitialize関数内で行うのが良いでしょう。記述例)//ATS-PクラスにINIファイルから読み込んだ減速度をセットg_atsp.iniDeceleration = (float)g_ini.ATS_P.Deceleration;