【ArcGIS二次开发】CreateFeature报错(HRESULT E_FAIL)

在VS2010下基于ArcGIS 10.1做二次开发时遇到个奇怪的问题,对于MXD工程文档中已经存在的图层,获取其FeatureClass可以调用CreateFeature()函数生成要素,但是对于通过程序代码(AddShapFile())添加到MXD工程中的图层,获取其FeatureClass后再执行CreateFeature()就会报COM错误(Error HRESULT E_FAIL has been returned from a call to a COM component,代码0x80004005),如下图所示:

首先排除不是代码错误,又检查了一下也不是数据问题,最有可能的就是开发环境的问题了,在google中大海捞针般终于找到一条有用信息:

死马当活马医,于是把临时加载到工程中的的SHP文件放到C盘根目录下,重新执行程序,问题竟然解决了……我惊呆了……

from:http://gislog.com/archives/1593.html/comment-page-1

时间: 2024-11-03 20:09:43

【ArcGIS二次开发】CreateFeature报错(HRESULT E_FAIL)的相关文章

ArcGIS二次开发综述

ArcGIS是一个全面的GIS平台,具有多种二次开发方式,为行业应用提供了丰富多样的定制手段.ArcGIS传统的二次开发方式主要是基于脚本和COM组件技术.随着云计算和移动计算的兴起和大数据的广泛应用,传统开发方式的缺点异常凸显,例如不能跨平台.开发难度大.性能低.无法利用云计算资源等,难以融入到主流的信息浪潮中.本文分析了ArcGIS的二次开发历史和最新的开发方式,讨论了其优缺点,指出未来ArcGIS二次开发的方向应具有可视化.开源.跨平台.云计算等特点.本综述为云计算和大数据背景下高校GIS

iOS 二维码扫描报错问题之一

iOS 开发中在导入第三方的二维码扫描 ZBarSDK在模拟器能正常运行,但真机调试的过程中可能会报错,报错的信息如下目前的找到的一种解决办法如下图所示:在Build Settings里面搜bit  在BuildOptions里面修改Enable Bitcode为No,这样真机就可以正常运行了,如下图所示: 修改之后目前真机上可以正常运行

visual studio2010中C#生成的,ArcGIS二次开发的basetool的dll,注册为COM组件tlb文件,并在arcmap中加载使用

写了个标题好长啊~~~~ 这两天又认识了一个新玩意,记录一下下,啦啦啦~~~~~ 话说,认识arcgis快十年了,从桌面版到engine的二次开发,其实不过才认识到它的冰山一角, 它总是能带来很多还未知的东西,实话说,就是如此的热爱着它,因为从来都觉得遨游其中,没有边界~~~~~ arcengine二次开发,这个玩意现在已经不流行了,但是其奥妙和乐趣依然无穷~~~~ 言归: 一. 之前写的basetool,basecommand等类都是在独立的系统中运行的,没有单独注册成过组件在桌面版arcma

iOS开发运行报错、常见问题

一.报错与警报 1.错误代码:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s) build 这个target的时候命令行报错.可以在 build setting 中,搜索bitcode,并吧 enable bitcode 设置为 NO. 2.ld:framework not found IOKit 终端输入以下2行内容 1 2 3 cd/Appl

iOS 开发笔记-报错处理

1.xcode7报错:does not contain bitcode 解决方法:Build Settings 搜索 bitcode  将Enable Bitcode更改为NO即可 2.Code Sign error: No code signing identites found: No valid signing identities (i.e. certificate and private key pair) matching the team ID “E6F3H8ENQM” were 

java菜鸟篇<二> eclipse启动tomcat报错的问题:Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main"

9.1今天不知道自己瞎搞eclipse的时候按到了什么键,然后再启动程序的时候就会报错: 如下: Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main"(溢出内存错误) 解决方案: 然后就发现自己原来设置扩大堆内存的没有了,要重新设置 如图: 重新启动项目,OK解决了!!哈哈哈

arcgis二次开发遇到System.Runtime.InteropServices.COMException (0x80040228) :异常来自HRESULT:0x80040228

出现此问题只需要在控件上拖入一个LicenseControl就可以了 参考资料:http://yaogu.blog.163.com/blog/static/1849990662012101283256465/

ARCGIS 二次开发可以参考的资源(长期更新)

背景: 今天,被领导教导,说是你刚入职,要尽快把项目做起.言语忠恳,而且说不要再在电脑上练习那些小的测试例子了,要直接切入项目,熟悉项目的开发框架,与设计理念.得到,我的负责人(TB)把他做的项目的资料整理好后,你们两个再沟通,那个项目需要完善的地方,以及增加的工鞥.这个项目已经实施2年了,虽然是单位自己用的软件,但是也不能再耽搁下去了,实在不行,只能找学校的老师,去完成剩下的了.告诫我,自己要尽快的熟悉起CS开发,以便尽快完成系统的最终的设计工作. 正文 所以,本文切知,尽快的熟悉起ArcGI

ArcGIS二次开发实践— — 遍历ToolBox中的工具!

在AO中,打开“文件A”的基本流程是: 1.创建对应“文件A”类型的WorkspaceFactory: 2.用WorkspaceFactory创建“文件A”的Workspace,Workspace可以是文件所在文件夹(如本文后面要创建的ToolBox的Workspace),也可以是空间数据库(如果你把文件存到数据库里了或要打开数据库里的数据). 3.用Workspace打开“文件A”,获得对应类型的“文件A”对象: ----------------------------------------