error C2664: 'PolyBezier' : cannot convert parameter 1 from 'struct CEx07aDoc::tagPOINT [10]' to 'const struct tagPOINT *'怎么回

Ilovestephenson 2005-09-12 09:50:46
尝试强制类型转换还是不行!有人知道怎么解决吗?

问题如下:
在class CEx07aDoc中定义POINT并定义POINT类型的数组变量:

typedef struct tagPOINT{
LONG x;
LONG y;
}POINT;

POINT BezierPoint[10];

在void CEx07aView::DrawBezier (CDC *pDC)中调用CDC的成员函数PolyBezier
其函数原型为PolyBezier(const tagPOINT*,int)

pDC->PolyBezier(pDoc->BezierPoint , 4);
程序编译无误,但是假如这个语句之后就会出现错误,错误提示如下:
error C2664: 'PolyBezier' : cannot convert parameter 1 from 'struct CEx07aDoc::tagPOINT [10]' to 'const struct tagPOINT *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

尝试用强制转换还是出现同样的错误,有哪位知道的指点下,如果需要完整的程序,请回帖告诉我
我会发到你的邮箱,我的邮箱是zhanghuiling_1983@56.com,也可以发邮件给我!

我尝试过在网搜索相关的文章,搜到了一篇,不过我看得也没能解决这个问题。所以希望在这里能够得到解决方案。先在这里表示感谢了!


...全文
269 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rageliu 2005-09-13
  • 打赏
  • 举报
回复
顶...
alen_ghl 2005-09-13
  • 打赏
  • 举报
回复
同意,换个名字
菜牛 2005-09-13
  • 打赏
  • 举报
回复
POINT是已经有定义的了,你最好另外给个名字,这种习惯不好。

'CEx07aDoc::tagPOINT [10]' 可见你是在CEx07aDoc内部定义结构的,放到外部去。
jjiaming 2005-09-13
  • 打赏
  • 举报
回复
源码已经收到
把pDC->PolyBezier(pDoc->BezierPoint , 4);
改为 pDC->PolyBezier((tagPOINT *)pDoc->BezierPoint , 4);
就可以了。我刚刚试过了。
菜牛 2005-09-13
  • 打赏
  • 举报
回复
这个结构的声明放到CEx07aDoc前面去,不要放在内部。
Ilovestephenson 2005-09-13
  • 打赏
  • 举报
回复
大家提到的这个确实是个好的意见,以后我会注意的,但是对于这个问题来说,改了之后并不见效!
希望大家继续帮我找原因,如果我找出解决办法,我会在这里贴出来的

谢谢各位了!
jjiaming 2005-09-12
  • 打赏
  • 举报
回复
POINT结构不是MFC中已经定义的了吗?
把你的代码发过来看看
lliulean@yahoo.com.cn

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧