当前位置: 代码迷 >> Brew >> macro redefinition解决思路
  详细解决方案

macro redefinition解决思路

热度:6612   发布时间:2013-02-26 00:00:00.0
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?
  相关解决方案