当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·如何提取日期格式    »显示摘要«
    摘要: 表中日期格式为:2003-4-15 15:23:31 如何使页面上显示的为:4-15 15:23 ......
    摘要: 我摸得最多的是什么? ......


关于ATL的两个问题

1   在ATL中是用多继承来实现组件类的,而在MFC中是用嵌套类来实现组件类  
  在MFC中对所有的嵌套类(从接口继承),的所有接口都给了实现,而ATL好象并不是这样  
  只是给了一个实现,如  
  class   ATL_NO_VTABLE   CAbc5   :    
  public   CComObjectRootEx<CComSingleThreadModel>,  
  public   CComCoClass<CAbc5,   &CLSID_Abc5>,  
  public   IDispatchImpl<IAbc5,   &IID_IAbc5,   &LIBID_ATLDLLLib>  
  为什么只有一个addref和realse,queryinterface的实现  
   
  IDispatchImpl是从IAbc5继承而来的难道他不需要实现addref和realse,queryinterface吗  
     
  2  
  我用向导插入简单对象时,(single和apartment)产生的效果是一样的即CComSingleThreadModel,  
  both和free产生的效果是一样的即CComMultiThreadModel  
  那么请教single和apartment的区别,both和free的区别  
 

NO.1   作者: zzyx

关于1,  
  ATL使用的是C++的模版,不是简单的继承概念。  
  addref和realse,queryinterface的实现是通过一般可以认为是通过CComObject实现的。  
  而每个父类的IxxxImp,都实现了自己的接口。  
  比较复杂,正在看ATL。我的意见是,如果在实际应用上没有必要,那就暂时忽略。  
   
  关于2,single和apartment的区别,both和free的区别  
  在注册表中有不同,你可以检查rgs文件。

NO.2   作者: arxing

第一个是基本C++问题,IDispatchImpl不是单独实例化,可以成抽象类,CAbc也是抽象类,它们可以带有纯虚函数。从IUnknown的几个原则知道,不管是在哪个接口里面,QueryInterface,AddRef,Release都应该是一致的,没有必要为它们单独实现,只需要在高层的子类来一次实现就好了。


 ·水晶报表页面设置问题    »显示摘要«
    摘要: 我有一张很宽的报表,在设计时我在designer->printer setup中把纸张大小设置为a2横向打印,一切ok,整帐报表都是可见的,但是我在网页中浏览时只有报表的前半段可见,请各位先知先觉者指点 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE