急呀!!

解决方案 »

  1.   

    com不支持实现重载
    只能使用包容或者聚合至于如何实现,随便找本com的书来看看吧,都有的
      

  2.   

    如果是一个COM对象实现了两个接口的话?直接调用另一个接口的成员函数就行了!
      

  3.   

    error C2065: 'GethdcGL' : undeclared identifier
      

  4.   

    在接口一中定义:  HDC GethdcGL()
    在接口二中想使用GethdcGL()返回的HDC的值
      

  5.   

    error C2065: 'GethdcGL' : undeclared identifier
    说明你少添加了头文件。例如:在A接口中调用B接口的方法,应该在A.cpp中#include "B.h"既然你用ATL开发,你看这样是否可行,在A接口要调用B接口的方法的地方加入下面的代码:
    CComObject<CB> pB = NULL;
    HRESULT        hr;hr = CComObject<CB>::CreateInstance(&pB);
    if (FAILED(hr))
    {
        return hr;
    }pB.AddRef();
    pB->GethdcGL();
      

  6.   

    lwg7603(刑满释放人员)说的是没错的 
    应该是你少包了头文件
      

  7.   

    直接#include “b.h"可
    用函数在a.h中定义
    在有用CBObj a;
    定义在b.h
    typedef CComObject<CB> CBObj;
    在A的构造函数中调用
    CBObj::CreateInstance(&m_pDocuments);这种方法可用于接口部由用户创建,比如枚举器
      

  8.   

    最苯的方法,你在A接口的函数中Query B的接口不就OK了?
    CComPtr<IB> pB;
    QueryInterface(&pB);
    pB->GethdcGL();
    pB->Release();
      

  9.   

    按 Stepdev(海纳百川 有容乃大) 提供的方法即可,主要在idl文件中要申明接口类,要不不能编译过去的。
      

  10.   

    ddmpqcw(冰刀) :
         同一组件中的多接口相互调用也要聚合?聚合不是组件间复用的吗?Stepdev(海纳百川 有容乃大) :
         他的组件中多接口不知道如何实现的。有些手工添加代码实现多接口的组件只有一个h文件,也就是说,几个接口共用一个h文件。
      

  11.   

    我的组件中的多接口是通过ATL的WIZARD生成的,就是Insert菜单下的New ATL Object。
    为什么多个接口的组件只有一个h文件呢?我喜欢一个接口有一个h文件、一个cpp文件。这样多清楚啊。