创建类的实例时出现空指针异常

时间:2015-06-29 06:55:04

标签: c++ com

我有一个类,其定义如下。

class SampleClass: public IDispatchImpl<Interface1, &__uuidof(Interface1)>,
                   public IDispatchImpl<Interface2, &__uuidof(Interface2)>,
                   public IDispatchImpl<Interface3, &__uuidof(Interface3)>,
                   public CComObjectRootEx<CComSingleThreadModel>
        {
            BEGIN_COM_MAP(SampleClass)
                COM_INTERFACE_ENTRY(Interface1)
                COM_INTERFACE_ENTRY(Interface2)
                COM_INTERFACE_ENTRY(Interface3)
                COM_INTERFACE_ENTRY2(IDispatch, Interface1)
            END_COM_MAP()
            ..............................
            ..............................
        }

这就是我实例化课程的方式。

CComObject<SampleClass> *t;
CComObject<SampleClass>::CreateInstance(&t);

上面的代码在下面显示的行中抛出一个空指针异常。(来自“atlcom.h”文件)。

template <class Base>
class CComObject : 
public Base
{
    public:
       typedef Base _BaseClass;
       CComObject(_In_opt_ void* = NULL) throw()
       {
           _pAtlModule->Lock();     //_pAtlModule is NULL,and hence NULL pointer exception  is thrown
       }
       ..............................
       ..............................
}

我认为SampleClass的定义存在一些问题。 任何人都可以帮我搞清楚吗? 提前谢谢..

0 个答案:

没有答案