IFeatureWorkspace.CreateFeatureClass(),报错对COM组件的调用返回了错误 HRESULT E_FAIL

ops/2025/2/5 12:33:15/

1、问题描述:在AE开发中,新增一个空的shpfile文件的时候,报错,如下图:

2、原因分析:产生此问题的原因是未设置默认字段的默认参数,特别是未设置IGeometryDef 参数。

3、解决方案:在新建默认字段时,设置IGeometryDef的参数。

4、示例代码:

 public static IFeatureClass CreateFeatureClass(IFeatureWorkspace FeatureWorkspace, string LayerName, esriFeatureType featureType, esriGeometryType GeometryType, ISpatialReference SpatialReference){IFields fields = new FieldsClass();IFieldsEdit edit = fields as IFieldsEdit;IField field = new FieldClass();IFieldEdit edit2 = field as IFieldEdit;edit2.Name_2 = "FID"; // set_Name("FID");edit2.AliasName_2 = "FID";// set_AliasName("FID");edit2.Type_2 = esriFieldType.esriFieldTypeOID; // set_Type(6);edit.AddField(field);IGeometryDef def = new GeometryDefClass();IGeometryDefEdit edit3 = def as IGeometryDefEdit;edit3.GeometryType_2 = GeometryType; //set_GeometryType(GeometryType);edit3.GridCount_2 = 1; // set_GridCount(1);edit3.set_GridSize(0, 1000.0);edit3.AvgNumPoints_2 = 2; // set_AvgNumPoints(2);edit3.HasM_2 = false; // set_HasM(false);edit3.HasZ_2 = false; // set_HasZ(false);edit3.SpatialReference_2 = SpatialReference;// set_SpatialReference(this.ShapeSpatialReference);IField field2 = new FieldClass();IFieldEdit edit4 = field2 as IFieldEdit;edit4.Name_2 = "SHAPE"; // set_Name("SHAPE");edit4.AliasName_2 = "SHAPE"; // set_AliasName("SHAPE");edit4.Type_2 = esriFieldType.esriFieldTypeGeometry; // set_Type(7);edit4.GeometryDef_2 = def;// set_GeometryDef(def);edit.AddField(field2);string str = field2.Name;// get_Name();UID uid = null;UID uid2 = null;if (featureType == esriFeatureType.esriFTSimple) //   1){IObjectClassDescription description = new FeatureClassDescriptionClass();uid = description.InstanceCLSID;   // get_InstanceCLSID();uid2 = description.ClassExtensionCLSID; // get_ClassExtensionCLSID();}return FeatureWorkspace.CreateFeatureClass(LayerName, fields, uid, uid2, featureType, str, null);}


http://www.ppmy.cn/ops/155865.html

相关文章

基序和纯度分数的计算

以下对这两个概念的详细解释: 基序 纯度分数 PWM矩阵的来源 为什么会有PWM矩阵? 一个特定的转录因子(TF)的结合位点的基序(motif)并不是唯一的。实际上,TF结合位点通常具有一定的序列变异性&a…

一文速览DeepSeek-R1的本地部署——可联网、可实现本地知识库问答:包括671B满血版和各个蒸馏版的部署

前言 自从deepseek R1发布之后「详见《一文速览DeepSeek R1:如何通过纯RL训练大模型的推理能力以比肩甚至超越OpenAI o1(含Kimi K1.5的解读)》」,deepseek便爆火 爆火以后便应了“人红是非多”那句话,不但遭受各种大规模攻击,即便…

c++模板进阶

c模板进阶 1.非模板参数 模板参数分为类型形参与非类型形参。类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成…

基于Flask的全国星巴克门店可视化分析系统的设计与实现

【FLask】基于Flask的全国星巴克门店可视化分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统采用Python作为主要开发语言,结合Flask框架进行后端开发&…

Docker 部署 GLPI(IT 资产管理软件系统)

GLPI 简介 GLPI open source tool to manage Helpdesk and IT assets GLPI stands for Gestionnaire Libre de Parc Informatique(法语 资讯设备自由软件 的缩写) is a Free Asset and IT Management Software package, that provides ITIL Service De…

读写锁: ReentrantReadWriteLock

在多线程编程场景中,对共享资源的访问控制极为关键。传统的锁机制在同一时刻只允许一个线程访问共享资源,这在读写操作频繁的场景下,会因为读操作相互不影响数据一致性,而造成不必要的性能损耗。ReentrantReadWriteLock&#xff0…

仿真设计|基于51单片机的贪吃蛇和俄罗斯方块游戏仿真(万年历)

目录 具体实现功能 设计介绍 51单片机简介 资料内容 仿真实现(protues8.7) 程序(Keil5) 全部内容 资料获取 具体实现功能 (1)利用LCD12864显示万年历贪吃蛇俄罗斯方块; (2&…

自定义数据集,使用scikit-learn 中K均值包 进行聚类

数据集生成: - 使用 make_blobs 函数生成包含300个样本的数据集,设定聚类中心为4个,聚类标准差为0.60,随机种子 random_state 0 保证每次运行生成的数据相同。 K - 均值模型: - 初始化 KMeans 类,设…