カテゴリ:ATSプラグイン作成講座
(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; お気に入りの記事を「いいね!」で応援しよう
[ATSプラグイン作成講座] カテゴリの最新記事
なんだか難しそうですね…。頑張ってみます。ありがとうございました
(March 15, 2009 04:55:25 PM)
管理人様、初めまして。
講座とは関係ないことですが、国鉄型気動車プラグインのことです。 管理人さんの国鉄プラグインを使用してiniファイルを作ったのですが、BVE4を起動させると、 このads.dllはThis version is not supportedという文字が出てきてしまい、無視をして続けると画像は出るのですが、車輌は、動かないのですが。 何が原因なのでしょうか? もう一つ、traindateの力行段数を変速1,直結1,2,の3速で、一速を0.8~65キロで設定しています。(定引張速 3.6k/h/s,25kkm/h , 特性域4です。) これも原因にあるのでしょうか? 管理人様のサイトが閉館してしまったために、ここに質問をしまい、申し訳ございません。 (November 3, 2010 12:39:56 PM)
This version is not supportedというメッセージは、
ATSプラグイン設定ファイル(iniファイル)が読み込めなかった場合に表示されます。 読み込めない原因として、 1.設定ファイルが見つからない、または名前が正しくない 2.国鉄気動車プラグイン(dll)のバージョンと設定ファイル(ini)のバージョンが合っていない の2つがあります。 1の場合、プラグイン本体(DLLファイル)と設定ファイル(INIファイル)が同じフォルダにあり、ファイル名(拡張子を除く)が同じになっているかをチェックしてください。 2の場合、最新のプラグインをダウンロードして、設定しなおしてください。 ※Let's go to NAGANOは移転しました。 ttp://iiyamaline.web.fc2.com/ (December 19, 2010 08:40:10 PM) |
|