070454 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

Let's create BVE

March 10, 2009
XML
(G)さん のコメントに対する講座です。

C++でINIファイルを読みこむために、inimoniというツールを使用します。
これはINIファイルからソースコードを自動生成してくれる便利なツールです。

(inimoniの使い方は省きます。)
inimoniで生成されたヘッダファイルをVC++でソリューションに追加します。
ats_etc1_1
これで準備が整いました。ソースコードを書き始めます。

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;






Last updated  March 10, 2009 10:11:27 PM
コメント(3) | コメントを書く
[ATSプラグイン作成講座] カテゴリの最新記事


■コメント

お名前
タイトル
メッセージ
画像認証
別の画像を表示
上の画像で表示されている数字を入力して下さい。


利用規約に同意してコメントを
※コメントに関するよくある質問は、こちらをご確認ください。


ありがとうございます   (G) さん
なんだか難しそうですね…。頑張ってみます。ありがとうございました (March 15, 2009 04:55:25 PM)

質問です   オカT さん
 管理人様、初めまして。
講座とは関係ないことですが、国鉄型気動車プラグインのことです。
管理人さんの国鉄プラグインを使用して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)

Re:質問です(03/10)   ノ付 さん
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)

PR

Recent Posts

Category

Comments

にそん@ Re:ATS-Pの距離情報(06/05) I.A.さん このサイトとは全く関係ないんで…
I.A.@ ATS-Pの距離情報 はじめまして、I.A.と申します。 現在,A…
ノ付@ Re:質問です(03/10) This version is not supportedというメッ…
オカT@ 質問です  管理人様、初めまして。 講座とは関係…
(G)@ ありがとうございます なんだか難しそうですね…。頑張ってみます…

Calendar

Archives

November , 2020
October , 2020
September , 2020
August , 2020
July , 2020

Copyright (c) 1997-2020 Rakuten, Inc. All Rights Reserved.