office插件的库冲突问题, error C2872

      在做office插件时,遇到一个问题,如果同时导入多个office库,如word、excel、ppt,会引起库冲突,主要提示为 error C2872。

    出现这个问题的原因是,有的office里,都有同名的类,所以引起冲突,解决的办法是将这些引起冲突的类,一个一个的重命名即可。

    下面的代码是一个加入了word、excel、ppt三个库的代码段,用于放在stdafx.h里进行库引入。

      其中用到的几个库文件如mso.dll等,按照你自己的路径放置好就可以,已经编译通过,供大家参考。

  1 // office公共库
  2 #import "..\..\Lib\12\MSO.DLL" raw_interfaces_only, raw_native_types, rename_namespace("Office"), named_guids, auto_search \
  3     rename("DocumentProperties", "OfficeDocumentProperties") rename("RGB", "OfficeRGB")
  4 using namespace Office;
  5 
  6 #import "..\..\Lib\12\VBE6EXT.OLB" rename("Application", "VBAplication") rename_namespace("VBE6")
  7 using namespace VBE6;
  8 
  9 // word库
 10 #import "..\..\Lib\12\MSWORD.OLB" auto_search no_auto_exclude rename_namespace("MSWord")\
 11     rename("ExitWindows", "WordExitWindows") \
 12     rename("FindText", "WordFindText")\
 13     rename("AddIn", "MSWordAddIn")\
 14     rename("ColorFormat", "MSWordColorFormat") \
 15     rename("LineFormat", "MSWordLineFormat") \
 16     rename("TextFrame", "MSWordTextFrame") \
 17     rename("ShapeRange", "MSWordShapeRange") \
 18     rename("Shapes", "MSWordShapes") \
 19     rename("FreeformBuilder", "MSWordFreeformBuilder") \
 20     rename("CalloutFormat", "MSWordCalloutFormat") \
 21     rename("FillFormat", "MSWordFillFormat") \
 22     rename("GroupShapes", "MSWordGroupShapes") \
 23     rename("ShapeNodes", "MSWordShapeNodes") \
 24     rename("PictureFormat", "MSWordPictureFormat") \
 25     rename("Font", "MSWordFont") \
 26     rename("Shape", "MSWordShape") \
 27     rename("Adjustments", "MSWordAdjustments") \
 28     rename("ConnectorFormat", "MSWordConnectorFormat") \
 29     rename("ShadowFormat", "MSWordShadowFormat") \
 30     rename("PictureFormat", "MSWordPictureFormat") \
 31     rename("TextEffectFormat", "MSWordTextEffectFormat")\
 32     rename("ThreeDFormat", "MSWordThreeDFormat") \
 33     rename("DiagramNode", "MSWordDiagramNode")\
 34     rename("CanvasShapes", "MSWordCanvasShapes") \
 35     rename("ShapeNode", "MSWordShapeNode") \
 36     rename("DiagramNodeChildren", "MSWordDiagramNodeChildren") \
 37     rename("DiagramNodes", "MSWordDiagramNodes") \
 38     rename("Window", "MSWordWindow")\
 39     rename("XlColorIndex", "MSWordXlColorIndex") \
 40     rename("Panes", "MSWordPanes")    \
 41     rename("Window", "MSWordWindow") \
 42     rename("Hyperlink", "MSWordHyperlink")    \
 43     rename("XlBorderWeight", "MSWordXlBorderWeight") \
 44     rename("Borders", "MSWordBorders")\
 45     rename("Hyperlinks", "MSWordHyperlinks") \
 46     rename("XlHAlign", "MSWordXlHAlign") \
 47     rename("XlPivotFieldOrientation", "MSWordXlPivotFieldOrientation") \
 48     rename("ChartColorFormat", "MSWordChartColorFormat") \
 49     rename("XlAxisGroup", "MSWordXlAxisGroup") \
 50     rename("XlAxisCrosses", "MSWordXlAxisCrosses") \
 51     rename("XlTickMark", "MSWordXlTickMark") \
 52     rename("XlScaleType", "MSWordXlScaleType") \
 53     rename("XlTickLabelPosition", "MSWordXlTickLabelPosition") \
 54     rename("XlAxisType", "MSWordXlAxisType") \
 55     rename("XlVAlign", "MSWordXlVAlign") \
 56     rename("XlCategoryType", "MSWordXlCategoryType") \
 57     rename("XlChartElementPosition", "MSWordXlChartElementPosition") \
 58     rename("ChartFillFormat", "MSWordChartFillFormat") \
 59     rename("XlSizeRepresents", "MSWordXlSizeRepresents") \
 60     rename("XlChartSplitType", "MSWordXlChartSplitType") \
 61     rename("XlDataLabelsType", "MSWordXlDataLabelsType") \
 62     rename("XlMarkerStyle", "MSWordXlMarkerStyle") \
 63     rename("XlChartPictureType", "MSWordXlChartPictureType") \
 64     rename("XlErrorBarDirection", "MSWordXlErrorBarDirection") \
 65     rename("XlErrorBarType", "MSWordXlErrorBarType") \
 66     rename("XlErrorBarInclude", "MSWordXlErrorBarInclude") \
 67     rename("XlErrorBarType", "MSWordXlErrorBarType") \
 68     rename("XlTimeUnit", "MSWordXlTimeUnit") \
 69     rename("XlDisplayUnit", "MSWordXlDisplayUnit") \
 70     rename("XlBarShape", "MSWordXlBarShape") \
 71     rename("XlRowCol", "MSWordXlRowCol") \
 72     rename("XlDataLabelPosition", "MSWordXlDataLabelPosition") \
 73     rename("LegendEntry", "MSWordLegendEntry") \
 74     rename("XlTrendlineType", "MSWordXlTrendlineType") \
 75     rename("XlTickLabelOrientation", "MSWordXlTickLabelOrientation") \
 76     rename("XlLegendPosition", "MSWordXlLegendPosition") \
 77     rename("XlEndStyleCap", "MSWordXlEndStyleCap")  \
 78     rename("SoftEdgeFormat", "MSWordSoftEdgeFormat") \
 79     rename("GlowFormat", "MSWordGlowFormat") \
 80     rename("ReflectionFormat", "MSWordReflectionFormat") \
 81     rename("HeaderFooter", "MSWordHeaderFooter") \
 82     rename("XlDisplayBlanksAs", "MSWordXlDisplayBlanksAs") \
 83     rename("Windows", "MSWordWindows") 
 84 using namespace MSWord;
 85 
 86 // ppt库
 87 #import "..\..\Lib\12\msppt.olb" auto_search no_auto_exclude,rename_namespace("MSPPT")\
 88     rename("ShapeNode", "MSPPTShapeNode") \
 89     rename("ThreeDFormat", "MSPPTThreeDFormat") \
 90     rename("Pane", "MSPPTPane") \
 91     rename("Application", "MSPPTApplication") \
 92     rename("Font", "MSPPTFont") \
 93     rename("AddIn", "MSPPTAddIn") \
 94     rename("ColorFormat", "MSPPTColorFormat") \
 95     rename("Comment", "MSPPTComment") \
 96     rename("XlVAlign", "MSPPTXlVAlign") \
 97     rename("ShapeRange", "MSPPTShapeRange") \
 98     rename("Shapes", "MSPPTShapes") \
 99     rename("PageSetup", "MSPPTPageSetup")\
100     rename("Shape", "MSPPTShape") \
101     rename("Comments", "MSPPTComments") \
102     rename("Adjustments", "MSPPTAdjustments") \
103     rename("Comments", "MSPPTComments") \
104     rename("TextFrame", "MSPPTTextFrame") \
105     rename("CalloutFormat", "MSPPTCalloutFormat") \
106     rename("ConnectorFormat", "MSPPTConnectorFormat") \
107     rename("FillFormat", "MSPPTFillFormat") \
108     rename("GroupShapes", "MSPPTGroupShapes") \
109     rename("LineFormat", "MSPPTLineFormat") \
110     rename("ShapeNodes", "MSPPTShapeNodes") \
111     rename("PictureFormat", "MSPPTPictureFormat") \
112     rename("ShadowFormat", "MSPPTShadowFormat") \
113     rename("TextEffectFormat", "MSPPTTextEffectFormat") \
114     rename("LinkFormat", "MSPPTLinkFormat") \
115     rename("OLEFormat", "MSPPTOLEFormat") \
116     rename("DiagramNode", "MSPPTDiagramNode") \
117     rename("OLEFormat", "MSPPTOLEFormat") \
118     rename("Diagram", "MSPPTDiagram") \
119     rename("CanvasShapes", "MSPPTCanvasShapes") \
120     rename("FreeformBuilder", "MSPPTFreeformBuilder") \
121     rename("WebOptions", "MSPPTWebOptions") \
122     rename("AutoCorrect", "MSPPTAutoCorrect") \
123     rename("DefaultWebOptions", "MSPPTDefaultWebOptions") \
124     rename("AddIns", "MSPPTAddIns") \
125     rename("DiagramNodes", "MSPPTDiagramNodes") \
126     rename("DiagramNodeChildren", "MSPPTDiagramNodeChildren")
127 using namespace MSPPT;
128 
129 // excel库
130 #import "..\..\Lib\12\EXCEL.EXE" rename_namespace("MSExcel")\
131     rename("RGB","RGBEx")\
132     rename("DialogBox","DialogBoxEx")
133 using namespace MSExcel;

 

转载于:https://www.cnblogs.com/nonine/p/3305715.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值