欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

vtbl(iwindow) vtbl;该如何解决

更新时间: 2014-01-05 02:45:37 责任编辑: Author_N1

 

VTBL(IWindow) vtbl;
摘一段sample的代码:
/***********************************************************************************/
static IWindow * CFileListWin_New(CMediaPlayer * pOwner)
{
   CFileListWin *    pme;
   VTBL(IWindow)     vtbl;
   
   MP_IWINDOW_SETVTBL(&vtbl, CFileListWin_Enable, CFileListWin_Redraw, CFileListWin_HandleEvent, CFileListWin_Delete);
...
/***********************************************************************************/

麻烦解释一下这段code的意思.VTBL(IWindow)     vtbl;
还有我一直不太清楚VTBL 到底是什么, 这里的
#define VTBL(iname) iname##Vtbl

Brew/C 里面的继承有哪几种途径..

谢谢.
--参考方法--
#define VTBL(iname) iname##Vtbl
VTBL就是一个宏定义而已,用来定义接口的。
面向对象设计中,接口定义很重要,接口就是定义了一系列的操作,在c为基础的brew中,就是表现为一个函数指针的结构体。下面的struct IWindowVtbl 就是例子,只有函数指针,没有其它数据了,因为 IWindow就是:
struct _IWindow {
   struct IWindowVtbl  *pvt; 
 };
就是函数指针堆在一起而已!!



VTBL(IWindow) vtbl;
展开后就是
IWindowVtbl vtbl


#define QINTERFACE(iname) struct _##iname {\
                             struct VTBL(iname)  *pvt; \
                           };\
                           typedef struct VTBL(iname) VTBL(iname); \
                           struct VTBL(iname)
IWindow的定义如下:
typedef struct _IWindow IWindow;

struct _IWindow {
   struct IWindowVtbl  *pvt; 
 };
typedef struct IWindowVtbl   IWindowVtbl ; 
struct IWindowVtbl 
{
  /*
   * Enables/Disables the window. Window controls will not process
   * events if the window is disabled.
   */
  void (*Enable)(IWindow *po, boolean bEnable);

  /*
   * Redraws the window if enabled
   */
  void (*Redraw)(IWindow *po);

  /*
   * Handles the events routed to the window
   */
  boolean (*HandleEvent)(IWindow *po, AEEEvent eCode, uint16 wParam,
                         uint32 dwParam);

  /*
   * Releases the window resources
   */
  void (*Delete)(IWindow *po);
};

--参考方法--
这里的这个

VTBL(IWindow) vtbl;
#define VTBL(iname) iname##Vtbl

可以翻译成:
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:45:37
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/14026/
本文WWW.DOC100.NET DOC100.NET版权所有。