vs2010 vc++开发引用 ArcEngine9.3 组件和AO对象实例化方法

原创 2012年03月22日 18:00:12

vs2010 vc++开发引用 ArcEngine9.3 组件和AO对象实例化方法

//stdafx.h文件最下面添加如下代码

//添加ArcEngine dll引用


#pragma warning(push)
#pragma warning(disable : 4192) /* Ignore warnings for types that are duplicated in win32 header files */
#pragma warning(disable : 4146) /* Ignore warnings for use of minus on unsigned types */
 
#import "D:/Program Files/ArcGIS/com/esriSystem.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids, exclude("OLE_COLOR", "OLE_HANDLE", "VARTYPE")
#import "D:/Program Files/ArcGIS/com/esriSystemUI.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids,exclude("OLE_COLOR","ICommand","IProgressDialog")
#import "D:/Program Files/ArcGIS/com/esriGeometry.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids,exclude("OLE_COLOR")
#import "D:/Program Files/ArcGIS/com/esriDisplay.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids,exclude("OLE_COLOR")
#import "D:/Program Files/ArcGIS/com/esriOutput.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids,exclude("OLE_COLOR")
#import "D:/Program Files/ArcGIS/com/esriGeoDatabase.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids,exclude("OLE_COLOR","IRow","ICursor")
#import "D:/Program Files/ArcGIS/com/esriCarto.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids,exclude("OLE_COLOR","ITableDefinition","UINT_PTR")
 
 
// additionally for 3D controls
#import "D:/Program Files/ArcGIS/com/esri3DAnalyst.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids
#import "D:/Program Files/ArcGIS/com/esriGlobeCore.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids
#import "D:/Program Files/ArcGIS/bin/SceneControl.ocx" raw_interfaces_only, raw_native_types, no_namespace, named_guids
#import "D:/Program Files/ArcGIS/bin/GlobeControl.ocx" raw_interfaces_only, raw_native_types, no_namespace, named_guids
 
#pragma warning(pop)


//MainFrm.cpp 文件中

//int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)方法中添加如下代码

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWndEx::OnCreate(lpCreateStruct) == -1)
return -1;


//=AO对象实例化
//-------------------------------------
IAoInitializePtr m_AoInit(CLSID_AoInitialize);// new AoInitializeClass();
esriLicenseStatus ls;
m_AoInit->Initialize(esriLicenseProductCode::esriLicenseProductCodeArcServer,&ls);


CString path=L"";
IPropertySetPtr ipPropertySet(CLSID_PropertySet);
    ipPropertySet->SetProperty(CComBSTR(L"DATABASE"),CComVariant(path));
//
//CComPtr<IWorkspaceFactory> ipWorkspaceFactory;
    //ipWorkspaceFactory.CoCreateInstance(CLSID_ShapefileWorkspaceFactory);
//
//IFeatureLayerPtr ipFeatureLayer;
    //HRESULT hr = ipFeatureLayer.CreateInstance(CLSID_FeatureLayer);
//-------------------------------------
BOOL bNameValid;
// 基于持久值设置视觉管理器和样式

        //.....

}

CMainFrame::~CMainFrame()
{
IAoInitializePtr m_AoInit(CLSID_AoInitialize);
esriLicenseStatus ls;
m_AoInit->CheckInExtension(esriLicenseExtensionCode::esriLicenseExtensionCodeSpatialAnalyst,&ls);
m_AoInit->CheckInExtension(esriLicenseExtensionCode::esriLicenseExtensionCodeDataInteroperability,&ls);
    m_AoInit->CheckInExtension(esriLicenseExtensionCode::esriLicenseExtensionCode3DAnalyst,&ls);


m_AoInit->Shutdown();
m_AoInit=NULL;
}


int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWndEx::OnCreate(lpCreateStruct) == -1)
return -1;


//=AO对象实例化
//-------------------------------------
IAoInitializePtr m_AoInit(CLSID_AoInitialize);// new AoInitializeClass();
esriLicenseStatus ls;
m_AoInit->Initialize(esriLicenseProductCode::esriLicenseProductCodeArcServer,&ls);
m_AoInit->CheckOutExtension(esriLicenseExtensionCode::esriLicenseExtensionCode3DAnalyst,&ls);
m_AoInit->CheckOutExtension(esriLicenseExtensionCode::esriLicenseExtensionCodeDataInteroperability,&ls);
m_AoInit->CheckOutExtension(esriLicenseExtensionCode::esriLicenseExtensionCodeSpatialAnalyst,&ls);


CString path=L"";
IPropertySetPtr ipPropertySet(CLSID_PropertySet);
    ipPropertySet->SetProperty(CComBSTR(L"DATABASE"),CComVariant(path));


//MessageBox("")/m_AoInit->
//
//CComPtr<IWorkspaceFactory> ipWorkspaceFactory;
    //ipWorkspaceFactory.CoCreateInstance(CLSID_ShapefileWorkspaceFactory);
//
//IFeatureLayerPtr ipFeatureLayer;
    //HRESULT hr = ipFeatureLayer.CreateInstance(CLSID_FeatureLayer);
//-------------------------------------
BOOL bNameValid;
// 基于持久值设置视觉管理器和样式

..

}


相关文章推荐

AO开发SDE(二)

引言: 这次的主要内容是连接SDE加载数据和开始编辑时候碰到的问题 一:关于初始化问题 这个主要是关系到许可的问题,如果许可初始化不到位的话,那么功能很容易报错,出现各式各样的错误。 自己碰到的大约有...

ArcEngine10.0+VS2010+MFC 扫盲贴

项目用vc6.0+MapObject写的,现在却要升级成AE10,研究了好多天的AE10.0和c++,中间的曲折也不想多说了,废话少数,下面是实现ArcEngine基本功能的,仅供参考,如能帮到同仁们...
  • yiersl
  • yiersl
  • 2013年11月21日 11:27
  • 7093

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

C++调用ArcEngine(C#)动态链接库

用C#语言开发ArcEngine,并生成dll,在C++中调用C#生成的dll

【基于VC的ArcEngine开发】1连接数据库

前面的话:ArcEngine是GIS巨头企业ESRI推出的地理信息系统的二次开发包,满足应用行业快速搭建GIS系统的需求。一般的二次开发使用C#,语言简单,开发者可将更多的精力集中到具体的业务问题的解...
  • ottll
  • ottll
  • 2012年07月31日 17:45
  • 988

VS2005+Arcengine9.3系统(程序)移至VS2010+Arcengine10.1继续开发

针对已经安装配置好了开发环境的情况,对于多个项目的解决方案,打开进行重新生成会出现很多错误。 比如: 1,“错误1 命名空间“ESRI.ArcGIS”中不存在类型或命名空间名称“DataSourc...

VS2010中“工具>选项中的VC++目录编辑功能已被否决”解决方法

这是VS2010的改变,不能够在“工具-选项”中看到“VC++目录”了。     但是呢,我们可以在另外一个地方找到它,请看下边的对比照片。 VS2008中:   VS2010中: ...

VS2010中“工具>选项中的VC++目录编辑功能已被否决”解决方法

这是VS2010的改变,不能够在“工具-选项”中看到“VC++目录”了。     但是呢,我们可以在另外一个地方找到它,请看下边的对比照片。 VS2008中:   VS2010中: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vs2010 vc++开发引用 ArcEngine9.3 组件和AO对象实例化方法
举报原因:
原因补充:

(最多只允许输入30个字)