VC++ 6.0 右键 不能重载虚函数 显示"no virtual functions available to be overridden"问题的解决

使用VC6.0 的向导生成基于MFC的工程后, 偶尔会发现当需要对某个类重载虚函数时, 右键添加不灵光了, 总是显示"no virtual functions available to be overridden", 而同样工程中的其它类可以正常通过右键重载虚函数。

删除.clw .ncb等文件 重新编译 折腾了一番 发现还是无果

感觉只有个别类出现这种问题有点奇怪,网上牛人们都说可以通过手动添加来解决。

是啊,手动添加固然能解决问题,但既然MS帮你做好了向导,为什么不好好利用呢?

本人就是个爱偷懒的货,就对比研究了下正常类的代码和出现问题的类的代码(看的是自动生成向导生成的虚函数相关的代码)。结果发现出现右键添加问题的类果然出了点问题。

具体出问题的地方是类的头文件中,IDE自动生成向导生成的部分代码(如下所示):

public:

 // Overrides
 // ClassWizard generated virtual function overrides
 //{{AFX_VIRTUAL(CXXXView)
public:
 virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
 virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
 virtual void OnInitialUpdate(); // called first time after construct
 virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
 virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
 virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
 virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
 virtual void OnDraw(CDC* pDC);      // overridden to draw this view
 //}}AFX_VIRTUAL

 

上面代码中红色标出的部分,本来正常应该是这个类的类名,但自动生成向导却没有正确生成这个类名,而是生成一个叫CcssView的奇怪名字,当我改回正常类名后,试了一下,果然可以通过右键正常重载虚函数!

看来微软的平台偶尔也会出现这种小Bug啊

以后碰到这种问题 心里就有底了  知道该去哪里查找问题并解决之~

 

问题虽小,不过希望能对自己有启示作用:即任何问题都是有原因的,在找出根源之前换用另一种方法,其实是在逃避问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值