我生成一个单文档的应用程序,并在程序里边 Insert ATL Objects, 这样就有自己的ATL对象在可执行(EXE)应用程序里边。请问,我的这个EXE里的ATL对象如何注册?

解决方案 »

  1.   

    在 MFC中好像不能插入ATL对象吧
      

  2.   

    因为里边的ATL对象要提供给另外的进程使用,
    如果不注册,
    其它进程无法使用这个EXE提供的接口
      

  3.   

    >>>我生成一个单文档的应用程序,并在程序里边 Insert ATL Objects, 这样就有自己的ATL对象在可执行(EXE)应用程序里边?你真的能加进去?不会吧?
      

  4.   

    To LeeZi(临渊羡鱼,不如退而结网) ( ) 
    呵呵,我也不知道是怎么生成的,
    但是我确实拿到一个这样的程序,单文档+ATL对象
      

  5.   

    to yuexiang(yuexiang) :
    我查询了注册表,发现能够正常使用的机器上都是有这个对象的 注册
    反之,没有注册的机器则不能使用
      

  6.   

    使用命令行参数/RegServer,可以注册tlb文件。建议使用VC7实现,使用/register可以将exe文件注册exe文件
      

  7.   

    用ATL生成一个空的EXE工程,在里面把控件做好,再把代码拷贝过来。
      

  8.   

    当然可以插入ATL对象,亦可注册
    由于插入了ATL对象,所以应该有一个CComModule _Module;(注意变量名不能变)在你的InitInstance中调用_Module.RegisterServer(TRUE)以注册即可注意使用_Module.RegisterServer(TRUE)时需要有映射宏
    BEGIN_OBJECT_MAP(ObjectMap)
    OBJECT_ENTRY(CLSID_YourClassName, CYourClassName)
    END_OBJECT_MAP()如果你的代码中,没有上面的宏,则_Module.RegisterServer(TRUE)将会失败