expatを使用してxmlファイルを読み取ります。xmlファイルで指定された構成からクラスメンバー変数の一部を設定したいと思います。startelementハンドラーを定義しました。
void Start(void *data,const XML_Char *el, const XML_Char **attr)
これは次のように参照されます。
XML_SetElementHandler(parser,Start, NULL);
現在、私はグローバル構造を使用して、g_stConfigInfo
すべての値をに格納していますStart()
例えば、
void Start(void *data,const XML_Char *el, const XML_Char **attr)
{
if( _tcscmp(el,_T("blah"))==0 )
{
for (int i=0; attr[i]; i+=2)
{
if(_tcscmp(attr[i],_T("name"))==0)
{
g_stConfigInfo.sInputName = attr[i+1];
}
.........
それから私はやっていますmyclass.sInputName = g_stConfigInfo.sInputname
グローバル変数を使用せず、代わりに、メンバー変数を設定する必要があるクラスのメンバー関数にすることができます。Start()内にもこのクラスのインスタンスを入れたくありません。これを行うための最良の方法は何ですか?