导航
  • 主页
  • VC综合技术
  • MFC新技术
  • 互联网技术
  • .NET 技术
  • VC/MFC界面
  • VC/MFC 进程
  • VC/MFC 数据库
  • VC++技术资源

请大虾指点有关OnInitDialog问题

westfox 2002-07-23 01:33:03
我的对话框类用classwaizd生成的OnInitDialog重载,编译总是通不过。我没加任何代码,试了几遍都不行。错误提示如下;
g:\gtpsimu\gsimu\element\dlgelempdpact.h(61) : error C2555: 'CDlgElemPdpAct::OnInitDialog' : overriding virtual function differs from 'CDialog::OnInitDialog' only by return type or calling convention
c:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(2568) : see declaration of 'CDialog'

按上面提示,我应该错误的修改乐OnInitDialog的返回值属性,可是我根本没动,是ClassWaize自动生成的,我看了是bool类型的。
请问这到底是什么问题。
另。我在同一工程别的dialog里加OnInitDialog没有问题的。
...全文
87 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
无来 2002-07-23
不清楚,我建议将你的类删掉,重新在写一个
回复
westfox 2002-07-23
我仔细检查乐,cpp和h里都没有重复定义这个函数
回复
mojun009 2002-07-23
你先关闭工程然后将工程里的*.ncb 文件 (如CChgUser.ncb)删除
重新打开工程后进行全编译。
回复
wjw123 2002-07-23
编译器错误 C2555
“class1::function1”: 重写虚函数返回类型有差异,且不是来自“class2::function2”的covariant

虚函数和派生的重写函数具有相同的参数列表,但返回类型不同。派生类中的重写函数不能仅在其返回类型方面与基类中的虚函数有差异。

可能的解决方案

在调用虚函数后转换返回值。
有关 C2555 的更多信息,请参阅知识库文章 Q240862。

示例

// C2555a.cpp
struct X
{
virtual void func();
};
struct Y : X
{
char func(); // C2555
};

--摘自《vs.net 的帮助文档》
回复
李正己 2002-07-23
你的类中可能存在两个OnInitDialog函数
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

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