Как объявить массив генделей? - PullRequest
0 голосов
/ 30 марта 2012

Я хочу объявить массив handel следующим кодом:

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

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

Но при компиляции выдается ошибка

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 ^[]'

Кто-то может сказать мне правильный способ объявлениямассив генделей?

Большое спасибо!

T & TGroup

Ответы [ 2 ]

5 голосов
/ 30 марта 2012

Вам необходимо использовать gcnew , поскольку это массив .Net, а не массив C ++ , поскольку это массив управляемого типа, а не массив собственного типа. У меня нет удобного компилятора для тестирования этого кода, но я считаю, что это был бы способ сделать это.

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

public:
    B()
    {
        b = gcnew array<Bitmap^>(10);
    }
};
1 голос
/ 30 марта 2012

Я бы, вероятно, использовал универсальный тип коллекции вместо массива.

Не уверен, что такое гендель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...