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

macro redefinition解决思路

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

 

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?
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

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