取点状内要素坐标值总是出错
用c++,得到选择集点状要素的坐标值,总是报错,郁闷
具体代码如下:
c++ ArcEngine 坐标 报错 MFC
IGeometryPtr geo;
IPointPtr point(CLSID_Point);
while(pf)
{
pf->get_Shape(&geo);
point=geo;//这句执行完后,point的地址变为0x0000000了,一直不知道为什么
double x=0;
point->get_X(&x);
ipFeatureCursor->NextFeature(&pf);
}
[解决办法]
没太明白这段代码的逻辑。point初始化后又给它赋值,有什么意义?
改造一下:
IGeometryPtr geo;
while(pf)
{
pf->get_Shape(&geo);
// point=geo;//这句执行完后,point的地址变为0x0000000了,一直不知道为什么
CComQIPtr<IPoint> point(geo); // 检测一下point的值。
double x=0;
point->get_X(&x);
ipFeatureCursor->NextFeature(&pf);
}
[解决办法]
pf->get_Shape(&geo);//鬼知道这个操作成功填写geo的值了没有
[解决办法]
鬼知道那个 geometry 是不是 point
[解决办法]
geometry 是基类, 可以是 point, polygon, line, etc
[解决办法]
初始化了吗,?