2012-04-10 12 views
1

Ich möchte meine hashmap in ArrayList in vC++ 08 hinzufügen. Mein Code ist unten.Wie hashmap in ArrayList in C++ hinzufügen?

typedef std::tr1::unordered_map< std::wstring, std::wstring > hashmap;  
      hashmap numbers; 
     ArrayList^ myAL = gcnew ArrayList; 

myAL->Add(numbers); // gives error... 

Aber es gibt Fehler, dass

error C2664: 'System::Collections::ArrayList::Add' : cannot convert parameter 1 from 'hashmap' to 'System::Object ^' 
1>  No user-defined-conversion operator available, or 
1>  No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called 

ich für Guss mit dem Objekt versucht, aber nicht gelungen. Kann jemand mir helfen, hashmap in arraylist hinzuzufügen?

Vielen Dank im Voraus ...

Antwort

0

Die Operation Sie oben versuchen, funktioniert nicht, weil verwaltet und einheimische Arten auf diese Weise nicht direkt zusammenarbeiten.

Ich empfehle Kenny Kerr klassischen C++/CLI-Artikel Best Practices for Writing Efficient and Reliable Code with C++/CLI, um herauszufinden, Ihre spezifische Interop-Szenario detaillierter, aber ich denke, was Sie tun möchten, ist ein Zeiger auf Ihr natives Objekt in einem verwalteten Objekt einbetten in der Lage sein, zu Ihrer Listenstruktur hinzuzufügen. Wenn Sie Mr. Kerrs AutoPtr class (im obigen Artikel beschrieben und aktualisiert here) verwenden, sollten Sie in der Lage sein, eine verwaltete Klasse mit dem AutoPtr als Mitglied zu erstellen, das Sie zu Ihrer ArrayList hinzufügen können.

+0

Danke für die Antwort, ich habe mein Programm geändert. Und füge einen alternativen Weg hinzu. –

Verwandte Themen