C++ AE开发 拓扑检查时添加拓扑规则报错,想知道怎么解决

/*3. 新建拓扑*/
//相关变量定义
dan::DString ipConfigureKey = "";
ITopologyContainerPtr ipTopologyContainer = ipFeatureDataset; //将数据集存入iTopology--用于创建拓扑
ITopologyPtr ipTopology;
double ipClusterTolerance; //返回默认容差
ipTopologyContainer->get_DefaultClusterTolerance(&ipClusterTolerance);
ipTopologyContainer->CreateTopology(_bstr_t((LPCTSTR)topologyName.utf16()), ipClusterTolerance, -1, _bstr_t((LPCTSTR)ipConfigureKey.utf16()), &ipTopology);
IFeatureClassPtr ipJoinFeatureClass;
ipFeatureWorkspace->OpenFeatureClass(_bstr_t((LPCTSTR)featureClassname.utf16()), &ipJoinFeatureClass);
IClassPtr ipClass = ipJoinFeatureClass;
ipTopology->AddClass(ipClass,5, 1, 1, VARIANT_FALSE); //添加参与拓扑的图层

long featureId;
long objectId ;
ipJoinFeatureClass->get_FeatureClassID(&featureId);
ipJoinFeatureClass->get_ObjectClassID(&objectId);


/*3. 添加拓扑规则 */
ITopologyRulePtr ipTopologyRule ;
ipTopologyRule->put_OriginClassID(featureId);
ipTopologyRule->put_TopologyRuleType(esriTRTAreaNoOverlapArea); //层内要素是否重叠;
ipTopologyRule->put_Name(_bstr_t((LPCTSTR)topologyRuleName.utf16())); //dstring转BSTR
ipTopologyRule->put_AllOriginSubtypes(VARIANT_TRUE);
ITopologyRuleContainerPtr ipTopologyRuleContainer = ipTopology;
ipTopologyRuleContainer->AddRule(ipTopologyRule); //添加拓扑规则;
已邀请:

杜辉锋

赞同来自:

从/*3. 添加拓扑规则 */
ITopologyRulePtr ipTopologyRule ;
ipTopologyRule->put_OriginClassID(featureId);  //这边就开始报错了。。

要回复问题请先登录注册