我用ATL工程编写了一个 windows shell 扩展
运行没有任何问题。现在我想在这个工程中添加头文件(和库文件) 来从后台传入数据我添加头文件的方式是:项目-〉属性-〉配置-〉c/c++-〉常规-〉附加包含目录-〉头文件路径出现了大量的编译错误如下,只粘贴了一部分:(如何解决)1>正在编译...
1>yyTagShellExt_i.c
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(29) : error C2016: 
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(29) : error C2061: 语法错误 : 标识符“RPC_NS_HANDLE”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(30) : error C2061: 语法错误 : 标识符“ProposedHandle”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(30) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(31) : error C2143: 语法错误 : 缺少“{”(在“*”的前面)
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(33) : error C2059: 语法错误 : “}”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(39) : error C2061: 语法错误 : 标识符“RPC_STATUS”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(39) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(41) : error C2061: 语法错误 : 标识符“I_RpcNsGetBuffer”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(41) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(42) : error C2146: 语法错误 : 缺少“)”(在标识符“PRPC_MESSAGE”的前面)
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(42) : error C2061: 语法错误 : 标识符“PRPC_MESSAGE”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(43) : error C2059: 语法错误 : “)”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(46) : error C2061: 语法错误 : 标识符“RPC_STATUS”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(46) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(48) : error C2061: 语法错误 : 标识符“I_RpcNsSendReceive”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(48) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(49) : error C2146: 语法错误 : 缺少“)”(在标识符“PRPC_MESSAGE”的前面)
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(49) : error C2061: 语法错误 : 标识符“PRPC_MESSAGE”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(50) : error C2146: 语法错误 : 缺少“;”(在标识符“RPC_BINDING_HANDLE”的前面)
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(50) : error C2061: 语法错误 : 标识符“__RPC_FAR”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(50) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(51) : error C2059: 语法错误 : “)”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(55) : error C2054: 在“RPCNSAPI”之后应输入“(”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(56) : error C2085: “RPC_ENTRY”: 不在形参表中
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(56) : error C2146: 语法错误 : 缺少“,”(在标识符“I_RpcNsRaiseException”的前面)
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(56) : error C2143: 语法错误 : 缺少“;”(在“(”的前面)
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(59) : error C2059: 语法错误 : “)”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(62) : error C2061: 语法错误 : 标识符“RPC_STATUS”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(62) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(64) : error C2061: 语法错误 : 标识符“I_RpcReBindBuffer”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(64) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(65) : error C2146: 语法错误 : 缺少“)”(在标识符“PRPC_MESSAGE”的前面)
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(65) : error C2061: 语法错误 : 标识符“PRPC_MESSAGE”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(66) : error C2059: 语法错误 : “)”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(69) : error C2061: 语法错误 : 标识符“RPC_STATUS”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(69) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(71) : error C2061: 语法错误 : 标识符“I_NsServerBindSearch”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(71) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(72) : error C2059: 语法错误 : “)”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(75) : error C2061: 语法错误 : 标识符“RPC_STATUS”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(75) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(77) : error C2061: 语法错误 : 标识符“I_NsClientBindSearch”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(77) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(78) : error C2059: 语法错误 : “)”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(82) : error C2054: 在“RPCNSAPI”之后应输入“(”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(83) : error C2085: “RPC_ENTRY”: 不在形参表中
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(83) : error C2146: 语法错误 : 缺少“,”(在标识符“I_NsClientBindDone”的前面)
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(83) : error C2143: 语法错误 : 缺少“;”(在“(”的前面)
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h(84) : error C2059: 语法错误 : “)”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcndr.h(190) : error C2061: 语法错误 : 标识符“MIDL_user_allocate”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcndr.h(190) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcndr.h(190) : error C2059: 语法错误 : “类型”
yyTagShellExt_i.c文件是ATL工程Generated Files中的一个  我没有动过

解决方案 »

  1.   

    从你的描述来看,因为仅仅是添加了头文件就这样了,可能是你添加的头文件中的某些内容(包括在头文件中又include的)和当前工程中的冲突了。可以试试不这样添加头文件,把需要添加的头文件#include到一个没有包含yyTagShellExt相关atl模块的cpp中。
      

  2.   

    直接把文件添加到工程,而不是改到编译器属性中,然后rebuild
      

  3.   

    HMENU submenu;//子菜单句柄
    submeun=CreatPopupMenu();//创建弹出菜单
    InsertMenu(submenu,0,MF_BYPOSION|MF_STRING|,idCmd++,_T(""));//为子菜单添加项
    InsertMenu(hMenu,0,MF_Popup,(UINT_PTR)submenu,_T(""));//将添加主菜单;