一、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
}