我的一个win32应用是一个后台程序,运行时候总是出现一个控制台窗口,如何去掉呢

解决方案 »

  1.   

    CreateProcess 的参数STARTUPINFO 决定了子进程出现时主窗口的外观STARTUPINFO结构中
     
    dwFlags 二进制标志位,它决定本结构的哪些成员有效,也决定主窗口是显示还是隐藏的状态wShowWindow 决定主窗口是显示还是隐藏。我们不希望显示子进程的主窗口,因此把该成员置成SW_HIDE 调用CreateProcess 来创建子进程,但调用成功后子进程仍然不处于激活状态。它被装进了内存但并没有立即运行。
      

  2.   

    int WinMain(          HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPSTR lpCmdLine,
        int nCmdShow
    );
    最后面的那个参数决定程序窗口如何显示,把它置为SW_HIDE就可以了,在主函数体内!
      

  3.   

    用这个吧, 最简单了
    把LINK里的subsystem:console改成subsystem:Windows /ENTRY:main
      

  4.   

    main开始处调用FreeConsole ();