在调试时用activex control test container把编好的dll insert进去
明明有getnumber和putnumber方法,但是invoke methods时说没有methods我的activex生成过程是vc下new atl project->new atl object (controls(lite control))选支持连接点和error..->加入属性这有什么不对吗?
到底怎样才能调试已编译过的activex dll呢?各位大侠帮帮忙,真的很急!谢谢!

解决方案 »

  1.   

    同志们re一下吧,这只是初级问题阿
    如果问题描述的不够清楚,就请指点全面一些了
    我很认真得想学习!
    bow all!
      

  2.   

    这是因为你选了Lite Control的缘故。ActiveX Control Test Container要发现方法的话,你的COM服务器就必须支持IProvideClassInfo接口才行。而Lite Control并不支持这个接口。但是并不影响使用,而且可以减少代码量。如果你希望加上这种特性的话,那么你得在该类的头文件中加入以下代码:
    1. 在继承的子类里再加上public IProvideClassInfo2Impl<&对象的CLSID, &事件接口的IID, &组件的LIBID>
    2. 在BEGIN_COM_MAP和END_COM_MAP段中加上
    COM_INTERFACE_ENTRY(IProvideClassInfo)
    COM_INTERFACE_ENTRY(IProvideClassInfo2)这样应该能解决问题了。
      

  3.   

    thanks!!!
    看来不懂的太多了,sigh
      

  4.   

    还有在 internal atl第一章看到下面代码可以防止ie询问对话框,我将该段拷到我的程序相应位置并替换相应类名,编译时出现四个错误,
    大意是说CATID_SafeForScripting和CATID_SafeForInitializing未定义,这不是应该atl早就定义好的吗?不解!
    BEGIN_CATEGORY_MAP(CCalcPi)
      IMPLEMENTED_CATEGORY(CATID_SafeForScripting)
      IMPLEMENTED_CATEGORY(CATID_SafeForInitializing)
    END_CATEGORY_MAP()
    是不是给了分贴子就没有了?所以想等一等再结贴,sigh小字辈钱太少了,呵呵
      

  5.   

    CATID_SafeForScripting (7DD95801-9882-11CF-9FA9-00AA006C42C4) CATID_SafeForInitializing (7DD95802-9882-11CF-9FA9-00AA006C42C4)