首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在先等

2012-03-26 
在先等高手进.现在用VC写了个COM接口com接口中有个类叫ProductClass,类中俩有个方法GetClassValue()SetCla

在先等高手进.
现在用VC写了个COM接口
com接口中有个类叫ProductClass,类中俩有个方法
GetClassValue()  
SetClassValue()

在VC工程中import这个COM接口.并在VC中定义了个Clist:
typedef   CList <IProductClass*,   IProductClass*>   CProductClassArray;
按理说这个Clist应该这样定义
typedef   CList <IProductClassPtr,   IProductClassPtr>   CProductClassArray;
但这样定义的话会报错。
在VC中写了个方法并可以调试通过
bool   Database::ReadProductClass(CString   sUser,CProductClassArray&   arrProductclass)
{

m_sSQL.Format(   "select   *   from   test "   );
try
{
_variant_t   var;
m_pRecordset   =   m_pConnection-> Execute((LPCTSTR)m_sSQL,   &var,   adCmdText);

IProductClassPtr   pProductClass;
HRESULT   ProductClassPthr   =   pProductClass.CreateInstance(__uuidof(ProductClass));
if   (ProductClassPthr!=0)
{
AfxMessageBox( "XTDSLDATE.dll控件加载失败 ");
return   false;
}

while   (m_pRecordset-> IsEOF   ==   VARIANT_FALSE)
{

var   =   m_pRecordset-> GetCollect(L "ClassValue ");
pProductClass-> PutClassValue(_bstr_t(var));
arrProductclass.AddTail(   pProductClass   );
m_pRecordset-> MoveNext();
}
}

SL_CATCH(_T( "读取产品大类信息失败 "))
IProductClass*   pProductClass1;
POSITION   pos   =   arrProductclass.GetHeadPosition();
pProductClass1   =   arrProductclass.GetAt(pos);
//调试到以上都没有报错。但下面开始报错。
AfxMessageBox(pProductClass1-> GetClassValue());
return   true;
}

我想问问
1定义COM接口的指针。IProductClass*与IProductClassPtr有什么区别
2上面代码应该如何修改。请各位高手帮帮忙。


[解决办法]
帮顶

热点排行