C++类保护函数外部调用

来源:互联网 发布:xp系统查找mac地址 编辑:程序博客网 时间:2024/06/18 12:12

一、protected虚函数

class CMyView : public CView

{

protected:
 virtual void OnDraw(CDC* pDC);

};

 

CMyView* pMyView;

pMyView->OnDraw(NULL);//编译不通过

解决方法:

1、protected:修改为public:

2、

typedef void (CView::*pFOnDraw)(CDC* pDC);

获取到CMyView::OnDraw的函数地址

 pFOnDraw callOnDraw = (pFOnDraw)&CMyView::OnDraw;//编译不通过,只能在CView子类内部获取

然后就可以这样调用

(pMyView->*callOnDraw)(pDC);

 

3、C++嵌入汇编

 __asm
  {

  mov ecx,pMyView
   call CMyView::OnDraw

}

0 0