J'utilise expat pour lire un fichier xml. Je veux remplir certaines variables de mes membres de classe à partir de la configuration spécifiée dans le fichier .xml. J'ai défini mon gestionnaire de startElement,en utilisant expat startelement handler C++
void Start(void *data,const XML_Char *el, const XML_Char **attr)
et ce sera référencé comme suit:
XML_SetElementHandler(parser,Start, NULL);
À l'heure actuelle, je me sers d'une structure globale, g_stConfigInfo
pour stocker toutes les valeurs dans Start()
Par exemple,
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];
}
.........
Puis-je faire Je préférerais ne pas utiliser la variable globale, pour pouvoir en faire une fonction membre de la classe dont les variables membres doivent être remplies. Je ne veux pas avoir une instance de cette classe dans Start() non plus. Quelle est la meilleure façon de faire cela?
J'ai généralement fait la même chose sans modèles. Cela le rend beaucoup plus propre. +1 – Ferruccio