Array mit eigener Klasse
-
Guten Morgen,
Ich habe eine eigene Klasse, die ich via DLL bekomme und brauche davon aber nun mehrere Instanzen.. wieviel weiß ich erst zur Laufzeit.. mein Ansatz war also..
d3plotReader* thed3plotReader[]; for(int readerNr=1;readerNr<=countSimulations;readerNr++) thed3plotReader->Add( new d3plotReader(filename));
was aber mit einer NullPointer-Exception quittiert wird - muß ich für das Array vorher doch noch irgendwie speicher allocieren, ich dachte, daß hat sich dur "->Add()" erledigt und wir allein getan? Wenn doch - wie?
System::Array<d3plotReader*>* thed3plotReader = __gc new System::Array<d3plotReader*>(countSimulations);
liefert mir einen Syntaxfehler...
error C2143: syntax error : missing ';' before '<'
Wie lautet es korrekt?
Benutze Visual Studio 2003 mit Visual C++ und .NET
Vielen Dank,
Hackbard_C
-
Hi,
selbstverständlich musst du das Array auch auf den Heap legen!bei der Syntax von .Net 2003 kann ich Dir leider nicht helfen...
System::Array<d3plotReader*>* thed3plotReader = __gc new System::Array<d3plotReader*>(countSimulations);
-
Weiß sonst noch hier wer Rat, wie ich das umsetzen kann?
Irgendwie scheint mein C++ den Generics-Ansatz (sprich die spitzen Klammern) allgemein nicht zu mögen... muß ich noch irgendeine Option bei der 2003er-Version einstellen, damit ich es nutzen kann?
-
Oft deutet ein solcher Fehler auf einen unbekannten Typ hin. Gibt es noch mehr Meldungen ?
Eventuell liegt es aber auch schlichtweg daran, das System::Array keinen templateparameter entgegen nimmt.
Schau Dir mal System.Collections.Generic.List<T> an.
-
Hat sich erledigt... konnte auf Visual Studio 2005 umsteigen und dort funktioniert
array<d3plotReader^,1>^ thed3plotReader = gcnew array<d3plotReader^,1>(countSimulations);
ohne Probleme
Trotzdem danke für die Hilfe!
-
Das wird auch im 2003er gehen.
Das eine ist cli::array , das andere System::Array