遇到问题应该尽量让思路清晰起来你的问题有两种解决办法
1 模拟Windows内核对象的引用机制,为你的类添加一个句柄,引用这个类的时候,需要使用句柄来进行访问,你所做的是去维护句柄中的引用计数器和线程的句柄表2 如果你不熟悉句柄,那么你可以尝试让这个类只能生成一个实例,这样就不必担心多重实例的问题了,一般采用CreateEvent的办法来实现你的问题并不难解决,建议你看看<Windows核心编程>

解决方案 »

  1.   

    楼上的说的很正确,com对象就是这么作的,另外可以看CString的源吗,它也是用的引用计数实现你说的功能的
      

  2.   

    可以通过为你的类实现一个引用计数来实现如何控制你的对象的生命期!如果有一个线程引用该对象就使引用计书增1,如果有一个线程释放该对象(这里的释放是不使用该对象的意思),就使引用计数减1,什么时候引用计数为0了,再把该对象从内存中释放掉!第二种方法可以使用一个全局的标识,该标识可以是一个bool值,当你的某个线程不用你的对象的时候就将这个标识置为false,表示该对象已经不再可用,此时你不必把对象从内存中清除,而是保留他直到程序运行结束,这样在其他线程访问该对象的时候就不会发生访问异常的错误了,这种实现方法类似API函数中的TerminateThread函数!希望对你有所帮助!大家继续讨论!:)
      

  3.   

    http://www.csdn.net/Develop/article/26/26152.shtm
    http://www.frontfree.net/view/article_242.html
      

  4.   

    很好解决啊,不就是计算你这个对象产生了多少个吗?
    你在类中添加静态变量:static int i;你每产生一个对象你就加一,每销毁一 个就减一
    这样不就解决了你的问题吗?
      

  5.   

    模拟COM啊,对每个类建一个引用计数器,外部有使用时计数器+1,释放时计数器-1,计数器0时销毁对象。
      

  6.   

    这个问题在软件中到处存在,一般采取类似COM的引用计数技术即可。
      

  7.   

    fzd999(花差花差) 
    已经把思路讲出来了!!主要是维护引用计数和一个互斥的问题!!!!!!!!!!