首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Brew >

macro redefinition解决思路

2012-12-17 
macro redefinitiond:\test\display\display.bid(4) : warning C4005: AEECLSID_DISPLAY : macro redefi

macro redefinition
d:\test\display\display.bid(4) : warning C4005: 'AEECLSID_DISPLAY' : macro redefinition
        c:\brew31~1.5\sdk\inc\aeeclassids.h(58) : see previous definition of 'AEECLSID_DISPLAY'


像这样你们怎么解决的?
[最优解释]
int AEEClsCreateInstance(AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj);
中的AEECLSID是mif中的clsid,AEECLSID_DISPLAY是IDisplay的clsid,两个是不同的。
[其他解释]
AEECLSID_DISPLAY 是你自己定义的应用class id,如果是,显然这个名字不合适,BREW SDK中的bid文件中的class id名字可以认为是保留的宏定义,不能在应用中重复
[其他解释]
AEECLSID_DISPLAY 

这个是绘制界面用的CLSID  SDK里面已经定义过了 你得把你应用的CLSID换个名字
[其他解释]
更搞笑的是
int AEEClsCreateInstance(AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj)
{
*ppObj = NULL;

if( ClsId == AEECLSID_DISPLAY )
{
         // Create the applet and make room for the applet structure
if( AEEApplet_New(sizeof(display),
                          ClsId,
                          pIShell,
                          po,
                          (IApplet**)ppObj,
                          (AEEHANDLER)display_HandleEvent,
                          (PFNFREEAPPDATA)display_FreeAppData) ) // the FreeAppData function is called after sending EVT_APP_STOP to the HandleEvent function
                          
{、、、、、、、、
这里我跟踪了下 ClsId == AEECLSID_DISPLAY  他两个不相等,刚创建的项目 ,日这是啥JJ?

热点排行