PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [.NET C++] Wie über generic dictionary iterieren?


Elemental
2006-07-13, 14:01:42
Hallo,
ich versuche mich jetzt seit einem Tag daran, in managed c++ über ein dictionary zu iterieren.

Ich hab 3 Dictionaries, welches in einer C# ClassLibrary gefüllt werden:

System::Collections::Generic::Dictionary<int, System::Collections::Generic::List<String*>*>* dicErrors = new System::Collections::Generic::Dictionary<int, System::Collections::Generic::List<String*>*>();
System::Collections::Generic::Dictionary<int, System::Collections::Generic::List<String*>*>* dicWarnings = new System::Collections::Generic::Dictionary<int, System::Collections::Generic::List<String*>*>();
System::Collections::Generic::Dictionary<int, System::Collections::Generic::List<String*>*>* dicInfos = new System::Collections::Generic::Dictionary<int, System::Collections::Generic::List<String*>*();
OptErrors::OptMessages::GetOptMessages(strOptMessages, dicErrors, dicWarnings, dicInfos);



Mein letzter Versuch sieht jetzt so aus:

System::Collections::Generic::Dictionary<int, System::Collections::Generic::List<String*>*>::Enumerator dicWarningsEnumerator = dicWarnings->GetEnumerator();
while(dicWarningsEnumerator.MoveNext() != false)
{
System::Object* oErrorNumber = dicWarningsEnumerator.Key;
System::Object* oListMessages = dicWarningsEnumerator.Value;
}



Dabei kommt beim zugriff auf dicWarningsEnumerator.Keys eine EntryPointNotFoundException

Ich hab schon wie blöd im Netz gesucht, aber nirgends ein Beispiel gefunden, wie man so ein dictionary in c++ ausliesst...

Please Help!


mfG

Elemental
2006-07-13, 14:28:08
Noch ein einfacherer Versuch zum Test:


System::Collections::Generic::Dictionary<int, int>* dicWarnings = new System::Collections::Generic::Dictionary<int, int>();
for each (System::Collections::Generic::KeyValuePair<int, int> kvp in dicWarnings)
{
int i=0;
}


Da kommt die Meldung:

error C3285: for each statement cannot operate on variables of type 'System::Collections::Generic::Dictionary<TKey,TValue> __gc *'


Kann ich Generics in C++ evtl. nicht verwenden, wenn ich die alte Syntax mit der Compiler-Option /clr:oldSyntax erzwinge?

mfG