去掉 CONSOLE 窗口(转)

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

接下来我们再看看应用程序是如何运行的!
我们知道用VC编写的程序,运行的时候是需要 C\C++运行库支持的.当我们运行一个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/

去掉 CONSOLE 窗口(转)

时间: 2024-12-14 10:52:40

去掉 CONSOLE 窗口(转)的相关文章

显示/去掉CONSOLE窗口

众所周知,控制台应用程序一般都会显示一个控制台窗口(虚拟DOS窗口),但很多时候控制台程序的执行逻辑根本不需要与用户进行交互,所以显示这个难看的窗口纯属多余,那么如何将它屏蔽掉呢?下面我向大家介绍一种方法.  操作系统装载应用程序后,做完初始化工作就转到程序的入口点执行.程序的默认入口点实际上是由连接程序设置的,不同的连接器选择的入口函数也不尽相同.在VC下,连接器对控制台程序设置的入口函数是 mainCRTStartup,mainCRTStartup 再调用你自己编写的 main 函数:对图形

隐藏 console 窗口

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"wmainCRTStartup\"" )  //   设置入口地址 在默认情况下链接器看到/subsystem下是windows选项的时候,它会自动寻找WinMain或者wWinMain         但我们强制指定入口地址,这样运行程序的时候默认的console窗口就会隐藏!         上面是在代码中使用#pragma指令

去掉Debugger窗口的时间戳和进程ID

#define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]) 只需要在#import之前添加以上代码,就可以去掉讨厌的时间戳和进程ID啦~

iOS 8:【转】最大化 Xcode Debug Console 窗口

源地址:http://fann.im/blog/2012/03/23/maximize-xcode-debug-console-window/ 参考 How to get back the Console window in XCode4 做了一点点改动,Run 的时候自动切换到 Console Tab 并且是最大化展示,效果还不错. 打开 Tab 支持,View - Show Tab Bar. 双击或点 + 添加一个 Tab. 双击新加的 Tab 改名,比如 CONSOLE. 激活 Conso

隐藏Console窗口无效(续1)

[2014/10/19  23:57 ] :通过端口远程控制主机.运行程序之后,程序自动开放本机的999端口,其他电脑便可以通过999端口对本机操作. 程序中使用的到的命令: telnet测试端口命令: telnet IP 端口 或者 telnet 域名 端口(若telnet不是内部命令,使用打开或关闭windows功能,启动Telnet服务) netstat 测试开放的端口号 使用ipconfig控制网络连接的一个命令行工具.它的主要功用,包括用来显示现时网络连接的设置(/all参数),或通过

求助(VC++) 隐藏Console窗口无效

[逝去的100~~ 2014/10/07 20: 20] 程序想要实现控制台窗口的隐藏,但是窗口每次运行总会弹出来.为什么呢? 代码如下: // Mini.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #pragma comment(lib,"ws2_32.lib") #include <winsock2.h> #include <windows.h> //#pragma comment(linker, &

webpack打包时候去掉console.log配置

new UglifyJsPlugin({ uglifyOptions: { compress: { warnings: false, drop_console: true,//console pure_funcs: ['console.log']//移除console } }, sourceMap: config.build.productionSourceMap, parallel: true }), 原文地址:https://www.cnblogs.com/ryans/p/8352318.h

怎么去掉WIN7窗口文本框中淡绿色的底色

重装系统后突然发现,浏览器中URL位置,word文本框中到处都充满这种淡绿色的东西,突然就好怀念白色的底色.就想把他改过来.原来是这样的: 下面是亲测有用的教程. 1 . 回到桌面,单击右键选择个性化! 2 . 进入如下页面,选择高级外观设置: 3.进行如下设置,设置完后单击确定,就完成完成了更改,所有的文本底色都改为白色的啦! 4 .最后是如下的效果,都改成功啦

Win32隐藏输出console窗口

#include <Windows.h> void HideConsole() { ::ShowWindow(::GetConsoleWindow(), SW_HIDE); } void ShowConsole() { ::ShowWindow(::GetConsoleWindow(), SW_SHOW); } bool IsConsoleVisible() { return (::IsWindowVisible(::GetConsoleWindow()) != FALSE); }