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

news/2025/2/5 6:10:13/

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/news/1569429.html

相关文章

视频拼接,拼接时长版本

目录 视频较长,分辨率较大,这个效果很好,不耗用内存 ffmpeg imageio,适合视频较短 视频较长,分辨率较大,这个效果很好,不耗用内存 ffmpeg import subprocess import glob import os from nats…

RabbitMQ深度探索:死信队列

死信队列产生背景: RabbitMQ 死信队列俗称 备胎队列:消息中间件因为某种原因拒收该消息后,可以转移到私信队列中存放,死信队列也可以有交换机和路由 key 等 生产死信队列的原因: 消息投递到 MQ 存放,消息已…

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

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

Python爬虫:1药城店铺爬虫(完整代码)

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

2.4学习总结

洛谷1305代码 #include<stdio.h> #include<stdlib.h> struct treenode {char val;struct treenode* left;struct treenode* right; }; struct treenode* createnode(char val) {struct treenode* node (struct treenode*)malloc(sizeof(struct treenode));node-&…

Python 科学计算

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

GESP2023年12月认证C++六级( 第三部分编程题(1)闯关游戏)

参考程序代码&#xff1a; #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <string> #include <map> #include <iostream> #include <cmath> using namespace std;const int N 10…

新月军事战略分析系统使用手册

新月人物传记&#xff1a; 人物传记之新月篇-CSDN博客 相关故事链接&#xff1a;星际智慧农业系统&#xff08;SAS&#xff09;&#xff0c;智慧农业的未来篇章-CSDN博客 “新月智能武器系统”CIWS&#xff0c;开启智能武器的新纪元-CSDN博客 “新月之智”智能战术头盔系统&…