在BREW应用开发过程中我们经常在功能函数中要使用当前小程序的一些接口实例,如IShell、IDisplay等等,通常我们都是把自己的包含IApplet实例的结构体或对象指针传递给函数,然后实现我们的操作。
例如:
draw()函数实现一些绘制操作,通常我们这样实现:
void draw(IShell* pshell,IDisplay* pdisplay)
{
ISHELL_GetDeviceInfo(pshell,.....);
ISHELL_LoadResString(pshell,.....);
IDISPLAY_SetColor(pdisplay,.....);
IDISPLAY_DrawText(pdisplay,.....);
.........
IDISPLAY_Update(pdisplay);
}
每次我们都要传递这些实例的指针,呵呵 比较麻烦,而且好像开销也大些
我们可以使用GETAPPINSTANCE()来获得这些接口指针
void draw()
{
AEEApplet* pthis=(AEEApplet*)GETAPPINSTANCE();//获得IApplet指针,并强制转换成AEEApplet
//然后我们就可以方便的使用pthis了
ISHELL_GetDeviceInfo(pthis->m_pIShell,.....);
ISHELL_LoadResString(pthis->m_pIShell,.....);
IDISPLAY_SetColor(pthis->m_pIDisplay,.....);
IDISPLAY_DrawText(pthis->m_pIDisplay,.....);
.........
IDISPLAY_Update(pthis->m_IDisplay);
}
我觉得这样的话,对于我们编写通用的函数,或者写连接库的时候,更方便一些。
这样代码的代码以后重用的话比较方便些。
本人是这样认为的,欢迎大家一块讨论。
我的EMAIL elsec@126.com