Visual C ++ C2681 перегруженная функция, dynamic_cast

Я изучаю Visual C ++ из книги Джулиана Темплмана «Microsoft Visual C ++ .NET», издание 2005 года. Я использую Visual Studio Express 2012.

Я знаю, что он имеет дело со старым Managed C ++, который заменен на C ++ / CLI, поэтому я должен изменить некоторый текст в коде для работы в cli.

Однако, когда есть код, который собирается снова напечатать содержимое окна, когда окно свернуто или обратно, я получаю ошибку

C2681: «перегруженная функция»: недопустимый тип выражения для dynamic_cast

Вот функция, в которую это бросает это:

void Form_Paint(Object^ pSender, PaintEventArgs^ pe)
{
Graphics^ gr = pe->Graphics;
Pen^ pen1 = gcnew Pen(Color::Black);

for(int i=0; i<list->Count; i++)
{
Line^ pline = dynamic_cast<Line^>(pline->GetType);   //C2681
gr->DrawLine(pen1, pline->p1.X,pline->p1.Y,pline->p2.X,pline->p2.Y);
}
}

Оригинал из книги выглядит так:

void Form_Paint(Object* pSender, PaintEventArgs* pe)
{
Graphics* gr = pe->Graphics;
Pen* pen1 = new Pen(Color::Black);

for(int i=0; i<list->Count; i++)
{
Line* pline = dynamic_cast<Line*>(pline->get_Item(i));
gr->DrawLine(pen1, pline->p1.X,pline->p1.Y,pline->p2.X,pline->p2.Y);
}
}

Также я не знаю, как писать pline->get_Item(i) в CLI.

0

Решение

Я бы предположил, что pline->GetType должно быть pline->GetType() так как GetType() это функция.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]