你的做法完全忽略了ATL的准则!所以出错!
按照ATL的方法得到OBJECT的实例。

解决方案 »

  1.   

    对,不要这样来新建一个ATL Object应该用CreateInstance如果用smartpointer就更方便了_ConnectionPtr m_pConn;
    try{
        m_pConn.CreateInstance( __uuidof(Connection) );或者:
    _ConnectionPtr m_pConn( __uuidof(Connection) );
      

  2.   

    第一种方式
    IEncoder 是接口
    ::CoInitialize(NULL);
    IEncoder *pServer;
    HRESULT hr = ::CoCreateInstance(CLSID_Encoder, NULL , CLSCTX_INPROC_SERVER , IID_IEncoder, (void**) &pServer);第二种方式:
    先要在stdafx.h中#import "..\atlEncoder.dll "no_namespace
    编译StdAfx.cpp之后就可以了
    IEncoderPtr pServer;
    HRESULT hr = pServer.CreateInstance(_uuidof(Encoder));
      

  3.   

    Rabit9556(编程浪子)什么准则,能否具体点儿?
    请问各位那里可以找到类似的说明?我想看看
      

  4.   

    不是ATL的准则,而是COM的准则。
      

  5.   

    我的建议就是用smartptr, 最简单方便了,对于create atl com object