Windows 隐藏控制台

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )

在程序中加上如上语句,可以隐藏控制台窗口。

用VC编写的程序,运行的时候需要C/C++运行库的支持。

当我们运行一个程序时,连接器会首先寻找应用程序的启动函数。

以下内容为引用,因小A水平有限,不懂编译器连接开关,未能证实。但结果有效,内容应该是合理的。

引用:

如果你建立了一个console程序的话,编译器得链接开关会是以下这种形式 
/subsystem: "console " /entry: "mainCRTStartup " (ANSI) 
/subsystem: "console " /entry: "wmainCRTStartuup " (UNICODE)

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

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

但是我们也可以通过手动改动的方式使他们不匹配 ,例如我们可以这样改动 
#pragma comment( linker, "/subsystem:\ "windows\ "  /entry:\ "mainCRTStartup\ " " ) // 设置入口地址

在默认情况下链接器看到/subsystem下是windows选项的时候,它会自动寻找WinMain或者wWinMain 
但我们强制指定入口地址,这样运行程序的时候默认的console窗口就会隐藏

原文地址:https://www.cnblogs.com/YZFHKMS-X/p/11811085.html

时间: 2024-11-11 12:14:44

Windows 隐藏控制台的相关文章

隐藏控制台console application窗口

  如题,在windows上新建控制台应用程序的时候,怎么才能将console 黑窗口隐藏起来.   第一种方法: ::SetConsoleTitle(_T("test_exe")); HWND hwnd=::FindWindow(_T(""),_T("test_exe")); ::ShowWindow(hwnd,SW_HIDE); 不行,试了,不清楚为什么失败-. 窗口句柄抓到了,就是不明白为什么隐藏不了......⊙﹏⊙b汗 两种方法抓到的句

HoloLens开发手记 - 使用Windows设备控制台 Using Windows Device Portal

Windows设备控制台允许你通过Wi-Fi或USB来远程控制你的HoloLens设备.设备控制台是HoloLens上的一个Web Server,你可以通过PC的浏览器来连接到它.设备控制台包含了很多帮助你管理.调试和优化HoloLens设备的工具. 设置HoloLens以使用Windows设备控制台 Setting up HoloLens to use Windows Device Portal 打开HoloLens,并穿戴上 使用绽开手势打开开始菜单 选中设置应用,在你放置它以后会自动启动

【实用】windows隐藏用户及其使用方法

windows用户账户的密码是一个很坑的东西……尼玛你一点漏洞都不给怎么破啊?其实不用破密码也可以登录windows…… windows用户可以隐藏起来的真的耶! win7隐藏用户方法:http://jingyan.baidu.com/article/f96699bb81ace6894f3c1b7b.html windows隐藏用户方法:http://zhidao.baidu.com/link?url=c9kliyl5lTgVeGwZSPYDyNv48BTDFGVUENGCo0XePzAnUJL

.net 中通过控制台启动调用已经存在的应用程序,如何隐藏控制台本身

.net 中通过控制台启动调用已经存在的应用程序,如何隐藏控制台本身? [DllImport("User32.dll", EntryPoint = "FindWindow")] private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("User32.dll", EntryPoint = "ShowWindow

在控制台程序中隐藏控制台窗口

大家都知道,当编写一个win32 console application时,当运行此类程序的时候默认情况下会有一个类似DOS窗口的console窗口,但是有的时候我们只想在程序中运行一段功能代码,不希望显示这个console窗口,让代码执行完毕之后程序自动退出. 下面就介绍一下,如何隐藏win32 console application的console窗口 因为此种方法是通过设置编译器的链接开关来实现,所以让我们来看一下编译器的链接开关选项(也就是linker选项). 首先我们来看一下linke

隐藏控制台窗口的方法

在我们做程序的过程中,往往都需要用到控制台的程序来做实验或者用作后台的一些小应用的时候我们通常能够用到控制台程序,而,很多时候我们不需要去展现他得窗口,如何去隐藏他得窗口呢?很简单…… 首先先看一段简单的程序,这段程序就是我们用来去隐藏窗口的方法了! #region 隐藏窗口 [DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)] private static extern

c# 隐藏 控制台应用程序

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Runtime.InteropServices; namespace HideConsole { class Program { static void Main(string[] args) { Console.Title = "HideConso

windows中控制台窗口和普通窗口有什么区别?

1. 窗口都是windows标准窗口,有窗口句柄,但是console window没有消息循环,直接从缓冲区读数据,显示数据. windows中普通窗口都有自己的窗口过程, 我可以使用SetWindowlong来修改窗口过程, 但是控制台窗口修改后去无法收到消息, 都是窗口为什么控制台的不能通过修改窗口过程来捕获消息? 1. 控制台是基于STDIO相关的句柄实现的,内部循环流程是不断的用ReadConsole来读取输入缓冲并显示,用WriteConsole输出显示结果,相当于窗口中的Peak和T

在Windows的控制台界面下输出BMPString的内容

在解析X.509格式的数字证书时,有时候从证书中提取出的 commonName.countryName 等项的值类型是 BMPString,特别当这些值是中文的时候.此时如果在 Windows 的控制台下使用使用 wprintf() 输出这些值,显示的结果是乱码. 为了搞清楚产生乱码的原因,找到一张证书,查看其中的 countryName,对应的 ASN.1 编码类型是BMPString,编码是:0x1E, 0x4, 0x4E, 0x2D, 0x56, 0xFD,对应值为"中国".在网