unmanaged Daten für CLI vorbereiten
-
Hallo, ich habe ein Projekt in dem Datenstrukturen verwendet werden, welche ich gern in eine XML Datei schreiben möchte (Serialisieren/Deserialisieren). Nun habe ich das Problem das diese Daten als "normale" C++ Strukturen vorliegen und ich diese irgendwie in C++/CLI Objekte überführen muss. Ich glaube das richtige Stichwort ist Marshalling. Kann mir dazu jemand einen Hinweis geben? Folgendes Beispiel soll das Problem einmal verdeutlichen.
#using <System.Dll>
#using <System.XML.Dll>using namespace System;
using namespace System::Xml;
using namespace System::Xml::Serialization;// C++
struct myStruct1
{
CString str;
int *ptr;
};struct myStruct2
{
int var1;
int var2;
myStruct1 var3;
};// C++/CLI
void xmlsave(Object^ obj)
{
XmlSerializer^ x = gcnew XmlSerializer(obj->GetType());
TextWriter^ w = gcnew StreamWriter("myfile.xml");
x->Serialize(w, obj);
w->Close();
}void main(void)
{
Object^ objData = gcnew Object;
myStruct2 stData;
...
objData = convert(stData); // dieser Teil ist mir unklar
...
xmlsave(objData);
}
-
Warum willst Du C++/CLI verwenden um eine Datenstruktur in XML zu speichern? Das kannst Du auch mit msxml machen...
Oder was bewegt Dich dazu dies mit .NET zu machen?
-
msxml kannte ich nicht, ich werde mir es mal anschauen. Wobei ich gerade versuche die Daten mit boost abzuspeichern.