把2个函数贴出来,应该没问题的,肯定是你用的不对。

解决方案 »

  1.   

    我从没有遇到这种问题,估计是第一个方法用完后又把变量初始化了!
      

  2.   

    是啊,我发现用完第一个方法后,就调用~CServiceCtl()方法了,是为什么呢?下面是我的程序的定义部分,我在Starlistening方法里对m_csTestStr赋了值,在Stoplistening方法里使用这个变量时就发现这个变量的值是空的。是不是我定义有问题呢?
    class ATL_NO_VTABLE CServiceCtl : 
    public CComObjectRootEx<CComSingleThreadModel>,
    public CComCoClass<CServiceCtl, &CLSID_ServiceCtl>,
    public IDispatchImpl<IServiceCtl, &IID_IServiceCtl, &LIBID_APPSERVERLib>
    {
    public:
    CServiceCtl()
    {

    }
    ~CServiceCtl()
    {

    }//----------------added by firness---
    public:
    CString m_csTestStr;DECLARE_REGISTRY_RESOURCEID(IDR_SERVICECTL)DECLARE_PROTECT_FINAL_CONSTRUCT()BEGIN_COM_MAP(CServiceCtl)
    COM_INTERFACE_ENTRY(IServiceCtl)
    COM_INTERFACE_ENTRY(IDispatch)
    END_COM_MAP()// IServiceCtl
    public:
    STDMETHOD(StopListening)();
    STDMETHOD(StartListening)();