描述:
我编写了一个函数,
bool fun( 参数a) //参数a为输出参数,为智能指针或组件接口
我在函数外部声明了一个智能指针,我想让他作为fun的参数
怎么用啊.
代码:
bool CLogicControl:: LoadLayerToMap()
{
m_ptrMap.CreateInstance(_uuidof(Map));
ILayerPtr ptrLayer; //这个是要作为参数的智能指针
ptrLayer.CreateInstance(_uuidof(FeatureLayer));
CString strLayerName;
/////////添加点图层
strLayerName="ARCGIS_line";
this->GetLayer(strLayerName,&ptrLayer);
assert(ptrLayer!=NULL); //判断函数输出参数是否成功
m_ptrMap->AddLayer(ptrLayer);
return 1;
bool CLogicControl::GetLayer(CString LayerName,ILayer ** ptrLayer)
{
assert(m_ptrFeatureWorkspace!=NULL);
IFeatureClassPtr ptrFeatureClass;
_bstr_t bstrFeatureClassName=_bstr_t(LayerName);
m_ptrFeatureWorkspace->OpenFeatureClass(bstrFeatureClassName,&ptrFeatureClass);
assert(ptrFeatureClass!=NULL);
IFeatureLayerPtr ptrFeatureLayer;
ptrFeatureLayer=ptrFeatureClass;
ILayerPtr ptrLayer1;
ptrLayer1=ptrFeatureLayer;
(ptrLayer)=&ptrLayer1; //这里是对输出参数的传值
assert(ptrLayer!=NULL);
return 1;
}