我用的是VC++和MapObjects2.1+ArcGis。CMoRecordset recs(layer.GetRecords());
COleVariant index; 
CMoFields fields(recs.GetFields());
afxDump<<"fields number is "<<fields.GetCount()<<"\n";
CMoField field;
index.iVal=1; //0 也试过
//field=fields.Item(COleVariant(TEXT("Shape")));  //这样调用没问题,
                    //但我不能总知道字段名,所以这种调用是没有意义的
//field.CreateDispatch(TEXT("MapObjects2.Field"));
//field=fields.Item(COleVariant(short(0)));
field=fields.Item(index);
afxDump<<"field of fields0 name is "<<field.GetName()<<"\n";我想用fields.GetCount()获得fields中的字段个数,并逐个利用
fields.Item(i)调出其中的field,并可显示field.GetName()。
但是,上面的程序却出现了问题:
用fields.Item(index)调用field的结果为空,而将index改为COleVariant(TEXT("Shape"))却调用成功。
为什么我只能用name而不能用index调用fields里面的field??????