我自己写的一个activex控件里面有一个方法,
比如 AlertMessage(void)
方法的做用就是AfxMessageBox('ok');这样一个提示,
但是当我把这个方法的参数修改为 AlertMessage(BSTR strMsg)
使用AcitveX控件容器测试的时候这个方法就没有效果了,不会弹出 ok 的对话框了不知道是为什么,请朋友帮忙.

解决方案 »

  1.   

    IDL中进行修改没有??还有相应的[in],[out]等加没有。
      

  2.   

    如果编译通过了,可能要你手工注册下你新生成的ATL
      

  3.   

    IDL中加[in]了,其他相应的地方也都改了
      

  4.   

    如果是MFC,则这样改:
    void CYouClass::AlertMessage(BSTR FAR* bstrval)
    IDL当中改为
    [id(?)] void AlertMessage(BSTR* bstrval);//?--表示以前的发布号,不变
      

  5.   

    分发影射那里也要改为:DISP_FUNCTION(CDfdfdfdCtrl, "AlertMessage", AlertMessage, VT_EMPTY, VTS_PBSTR)函数申明也要改:
    afx_msg void AlertMessage(BSTR FAR* bstrval);