阅读:1810回复:4
AE92+VC开发时遇到'enum' type redefinition问题!
<P><FONT color=#f70968>今天使用ArcEngine9.2和VC写一个程序。在stdafx.h文件中加入如下代码:</FONT></P>
<P>//AO Include<BR>#pragma warning(push)<BR>#pragma warning(disable : 4192) /* Ignore warnings for types that are duplicated in win32 header files */<BR>#pragma warning(disable : 4146) /* Ignore warnings for use of minus on unsigned types */</P> <P>#import "esriSystem.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids, exclude("OLE_COLOR", "OLE_HANDLE", "VARTYPE")<BR>#import "esriSystemUI.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "esriGeometry.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "esriDisplay.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "esriOutput.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "esriGeoDatabase.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "esriCarto.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids</P> <P>// Some of the Engine controls<BR>#import "TOCControl.ocx" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "ToolbarControl.ocx" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "MapControl.ocx" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "PageLayoutControl.ocx" raw_interfaces_only, raw_native_types, no_namespace, named_guids</P> <P>// additionally for 3D controls<BR>#import "esri3DAnalyst.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "esriGlobeCore.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "SceneControl.ocx" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "GlobeControl.ocx" raw_interfaces_only, raw_native_types, no_namespace, named_guids</P> <P>#pragma warning(pop)</P> <P><FONT color=#f70938>编译后出现了'esriControlsMousePointer' : 'enum' type redefinition等类似的五个错误。</FONT></P> <P><FONT color=#f70938>本人百思不得其解,希望得到大家帮助,谢谢!</FONT></P> |
|
1楼#
发布于:2007-11-21 20:16
<P>没人遇到过吗?我弄了半天了也不知道问题出在哪?也试了好多种方法,解决不了啊。哪位大虾帮帮忙啊!谢谢了。</P>
|
|
2楼#
发布于:2007-11-22 14:33
<P>把这个去掉#import "TOCControl.ocx" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>你引入控件的时候其实已经有了</P>
|
|
3楼#
发布于:2007-11-22 14:36
<P><FONT size=4>这个错误,表示其中一个引入库中存在已经定义了的类型。</FONT></P>
<P><FONT size=4>第一步,你需要先确定是哪个库导致这个错误。</FONT></P> <P><FONT size=4>第二步,在引入错误的库后面做一个声明,表示已经存在的类型来自外部。比如:exclude("OLE_HANDLE", "OLE_COLOR")。</FONT></P> <P><FONT size=4></FONT> </P> <P><FONT size=4>经过上面的处理,你的问题就解决了。</FONT></P> |
|
|
4楼#
发布于:2007-11-22 17:14
<P>首先感谢3楼和4楼的两位同仁给予指导。个人感觉<FONT face=Verdana color=#61b713><STRONG>gzstyxb</STRONG><FONT color=#000000>兄(4楼)的解答靠谱点。因为我只在CFromView中加入了license控件和mapcontrol控件。而且要引入<FONT face=宋体>PageLayoutControl好像必须引入TOCControl吧?我把TOCControl去掉就会出错。另外引起错误的是ToolbarControl,但是我必须要用到,没办法去掉。</FONT></FONT></FONT></P>
<P>小弟我这就去试试<FONT face=Verdana><FONT color=#61b713><STRONG>gzstyxb</STRONG></FONT><FONT color=#000000>兄的做法。谢谢了!</FONT></FONT></P><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /> |
|