com中类厂创建组件对象一问

tianzhhy 2005-10-19 11:16:30
因为客户程序不可能知道组件的类名字,所以要通过类厂来创建组件对象。
可是我觉得在dll的导出函数DllGetClassObject中不创建类厂对象,而是直接创建组件对象,好像也是可以的。这样就不需要类厂了。
extern "C" HRESULT __stdcall DllGetClassObject(const CLSID& clsid, const IID& iid, void **ppv)
{
if (clsid == CLSID_Dictionary )
{
//CDictionaryFactory *pFactory = new CDictionaryFactory;
CDictionary *pObj=new CDictionary();//直接创建组件对象
if (pObj == NULL)
{
return E_OUTOFMEMORY ;
}

// HRESULT result = pFactory->QueryInterface(iid, ppv);

return 0;//result;
}
else
{
return CLASS_E_CLASSNOTAVAILABLE;
}
}
我的理解那里不对啊?
请各位指教。
...全文
68 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wshcdr 2005-10-20
  • 打赏
  • 举报
回复
可以实现,但是这样的话,逻辑上就比较混乱
个人理解
wshcdr 2005-10-20
  • 打赏
  • 举报
回复
被你搞晕了
obq0387_cn 2005-10-20
  • 打赏
  • 举报
回复
是可以这样的! 但问题是对于进程外组件呢? 这就必须要类厂了!其实我觉得使用类厂的作用有两个:
1.通过LockServer来显示控制服务期的声明周期!
2.用于套间线程之间的通信

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧