在ArcObjects中,CoClass是可以直接实例化的类,在VC中我们可以通过以下多种方法进行实例化:
过程描述
1.在变量声明的同时直接使用CLSID进行构造
示例:
IPropertySetPtr ipPropertySet(CLSID_PropertySet);
ipPropertySet->SetProperty(CComBSTR(L"DATABASE"),CComVariant(path));
2.CoCreateInstance方法(ATL CComPtr 模板类成员 atlbase.h)
示例:
CComPtr<IWorkspaceFactory> ipWorkspaceFactory;
ipWorkspaceFactory.CoCreateInstance(CLSID_ShapefileWorkspaceFactory);
3.CreateInstance方法(COM interface pointer 模板类_com_ptr_t成员 comip.h)
示例:
IFeatureLayerPtr ipFeatureLayer;
HRESULT hr = ipFeatureLayer.CreateInstance(CLSID_FeatureLayer);
用下来感觉后两种方法比较灵活,可以在创建时再决定对象的具体类。我们可以将变量声明为抽象类或者接口,在实例化时再根据需要创建为特定的具体类。
本文介绍了在ArcObjects中通过三种不同方法实现CoClass实例化的过程,包括直接使用CLSID构造、CoCreateInstance方法及CreateInstance方法,并探讨了这些方法的灵活性。
7029

被折叠的 条评论
为什么被折叠?



