Bonjour à tous,

Pour des pbs de performance client, je reviens au C++.
Cela quelque année que je n'avais plus utilisé ce langage et me voila bien rouillé.

J'ai une erreur à la construction de l'objet boost::archive:: xml_oarchive, il me donne une violation de mémoire ( comme java est doux :-) ).

voici l'extrait de code qui donne l'erreur d'exécution à la ligne ou je construit l'objet.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
void save(const DataClass &s, const char * filename){
    // make an archive
    std::ofstream ofs(filename);
    assert(ofs.good());
    boost::archive::xml_oarchive oa(ofs);
    oa << BOOST_SERIALIZATION_NVP(s);
}
L'erreur survient sur boost::archive:: xml_oarchive oa(ofs);

voici l'appel de la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
int _tmain(int argc, _TCHAR* argv[])
{
	DataClass c;
	c.setA(3);
	c.setStr("test");
	//std::string filename(boost::archive::tmpdir());
	 std::string filename(boost::archive::tmpdir());
    filename += "/demo.xml";
	save(c, filename.c_str());
	return 0;
}
J'ai testé l'example de sérialization fournit par boost et celui marche très bien ce n'est donc pas un pbs de dll.
Je dois serializer tous un tas d'objet en XML, et me voila bloqué sur un test tout simple.

Merci d'avance de votre aide et de votre tolérence.

PS : j'utilise VC++ 2008