zoukankan      html  css  js  c++  java
  • 去掉 CONSOLE 窗口(转)

    建立一个win32 console application的话,linker的/subsystem选项应该为
    CONSOLE,可以在VC开发环境的project->setting->link->project option中看到!

    接下来我们再看看应用程序是如何运行的!
    我们知道用VC编写的程序,运行的时候是需要 CC++运行库支持的.当我们运行一个C/C++程序的时候
    链接器会首先寻找应用程序的启动函数,例如:
    如果你建立了一个console程序的话,编译器得链接开关会是以下这种形式
    /subsystem:"console" /entry:"mainCRTStartup"   (ANSI)
    /subsystem:"console" /entry:"wmainCRTStartuup" (UNICODE)

    如果你建立了一个win32 application,编译器得链接开关则会是一下形式
    /subsystem:"windows" /entry:"WinMain"   (ANSI)
    /sbusystem:"windows" /entry:"wWinMain" (UINCODE)

    上面的两种形式可以再project->setting->link->project option中看到
    上面的subsystem和entry并不需要都设置,如果你只设置了/subsystem:"console"
    的话,那么默认的entry开关在默认情况下应为/entry:"mainCRTStartup"
    反之,如果你在应用程序中定义了main函数的话,默认情况下,你的/subsystem开关
    应该为/system:"console"


    在默认情况下/subsystem 和/entry开关是匹配的,也就是
    console对应mainCRTStartup或者wmainCRTStartup
    windows对应WinMain或者wWinMain

    但是我们也可以通过手动改动的方式使他们不匹配


    例如我们可以这样改动

    #include <windows.h>

    #pragma comment( linker, "/subsystem:"windows" /entry:"mainCRTStartup"" ) // 设置入口地址


    int main(int argc, char* argv[])
    {
    MessageBox(NULL, "hello", "Notice", MB_OK);
    return 0;
    }

    在默认情况下链接器看到/subsystem下是windows选项的时候,它会自动寻找WinMain或者wWinMain

    但我们强制指定入口地址,这样运行程序的时候默认的console窗口就会隐藏!

    转自:http://gchenweb.blog.163.com/blog/static/30639258200981632442664/

  • 相关阅读:
    (打包报错)AS打包报错:Generate Signed APK: Errors while building APK. You can find the errors in the 'Messages' view.
    NABCD
    石家庄地铁站项目最终总结报告
    团队冲刺2.7
    团队冲刺2.6
    团队冲刺2.5
    团队冲刺2.4
    团队冲刺2.3
    用户体验评价——win10自带微软拼音输入法
    团队冲刺2.2
  • 原文地址:https://www.cnblogs.com/ydxt/p/3852790.html
Copyright © 2011-2022 走看看