我想做一个后台程序,但不是service,我new project 的时候,用win32 的 windows application,然后删除_tWinMain内部的全部内容,加上我自己程序,程序运行后,没有界面后台运行,但是朋友告诉我,这样运行结束后,windows 的资源如message系统没有释放,反复运行,系统会crash,是这样吗?

解决方案 »

  1.   

    删除_tWinMain内部的全部内容??????
    看来你还没理解WINDOWS的消息机制.多看一下<<WINDOWS程序设计>>吧有帮助的
      

  2.   

    MSDN:The system automatically creates a message queue for each thread. If the thread creates one or more windows, a message loop must be provided; this message loop retrieves messages from the thread's message queue and dispatches them to the appropriate window procedures. 上面说系统会为每个线程创建一个消息队列。而你从WINMAIN开始就是创建了一个主线程,你没有创建窗口,也就是说没有消息循环,这个跟创建一个工作者线程是一样的。假如你的程序退出WINDOWS不释放那个消息队列,那工作者线程释放的时候那不是也不释放消息队列了。所以说你的应该不存在消息释放的问题。如果有,那也是WINDOWS设计的缺陷。时间太短,分析可能不免武断。
      

  3.   

    windows窗口存在一种叫 消息窗口 的类型,这种窗口没有可视界面,只处理消息
    我想你的程序和这个有点类似
    在确保你的程序能够顺利接受消息,派遣消息的前提下,应该是没问提的
    一般情况下,窗口在接受到WM_QUIT消息后,会退出消息循环
    这不存在资源释放不释放的问题