C ++ C2681重载函数,dynamic_cast

时间:2013-07-27 18:42:35

标签: c++ visual-c++ command-line-interface managed-c++ dynamic-cast

我正在从Julian Templeman的书“Microsoft Visual C ++ .NET”,2005年版中学习Visual C ++。我正在使用Visual Studio Express 2012。

我知道它处理旧的托管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);
    }
}

此外,我不知道如何在CLI中编写pline->get_Item(i)

0 个答案:

没有答案