2012-03-30 7 views
0

Ich möchte eine Reihe von Händels wie dem folgenden Code deklarieren:Wie man array of handel deklariert?

using namespace System::Drawing; 
ref class B 
{ 
    Bitmap^ b[]; 

    B() 
    { 
     b = new Bitmap^[10]; 
    } 
}; 

Aber es Fehler warf, wenn

error C2728: 'System::Drawing::Bitmap ^' : a native array cannot contain this managed type 
error C4368: cannot define 'b' as a member of managed 'B': mixed types are not supported 
error C2728: 'System::Drawing::Bitmap ^' : a native array cannot contain this managed type 
error C2440: '=' : cannot convert from 'System::Drawing::Bitmap ^*' to 'System::Drawing::Bitmap ^[]' 

Jemand Kompilieren können die richtig Art und Weise mir sagen, eine Reihe von Händels zu erklären?

Vielen Dank!

T & TGroup

+8

Ich hätte lieber eine Reihe von Mozart als von Händel. Meinst du Griff? – crashmstr

+0

String handelsWorks [] = {"Nero", "Almira", "Messiah"} :) Nur ein Witz. – Almo

+2

Auch ich schlage vor, nur Ihren ersten Fehler googlen, um das Problem zu sehen. Sie werden hier zur Lösung geführt: http://stackoverflow.com/questions/995434/arrays-of-strings-in-managed-c –

Antwort

5

Sie müssen gcnew verwenden, da dies ein .Net-Array ist, kein C++ - Array , da dies ein Array eines verwalteten Typs ist, kein Array eines systemeigenen Typs. Ich habe keinen Compiler zur Verfügung, um diesen Code zu testen, aber ich glaube, dass dies der richtige Weg wäre.

using namespace System::Drawing; 
ref class B 
{ 
private: 
    array<Bitmap^>^ b; 

public: 
    B() 
    { 
     b = gcnew array<Bitmap^>(10); 
    } 
}; 
+1

muss 'Array sein ^b;' – crashmstr

+0

@crashmstr Gute Fang. Ich stellte mir vor, dass ich, ohne es zu testen, ein paar dieser Dinge treffen würde. Es ist jetzt behoben. – pstrjds

+0

@pstrjds: Großartig, das ist was ich brauche. Danke vielmals ! – TTGroup

1

Ich würde wahrscheinlich eine generische Auflistung anstelle eines Arrays Typ verwenden.

Nicht sicher, was ein Handel ist, obwohl.

Verwandte Themen