启动一个隐藏的C ++程序

时间:2011-11-30 19:42:24

标签: c++ windows visual-studio-2010

我正在使用Visual Studio 2010创建一个C ++程序,它应该在我的机器背景上运行。

因此,当我启动时,我不应该在运行时看到CMD屏幕。我怎样才能做到这一点?我是否必须使用Win32 API或普通的C ++程序就足够了?

请注意我的程序根本没有GUI。

6 个答案:

答案 0 :(得分:14)

使用WinMain():

#include <windows.h>

int WINAPI WinMain(HINSTANCE inst,HINSTANCE prev,LPSTR cmd,int show)
{
  // program starts here
  return 0;
}

// int main()  <-- remove main() 

然后确保您的项目设置已设置,以便您构建“Win32”程序而不是“控制台”程序。

enter image description here

编辑:正如@Sehe指出的那样,winMain可能没有必要,虽然我不太确定这个选项在哪里。

答案 1 :(得分:5)

将其作为服务See here.

运行

答案 2 :(得分:2)

在Windows下运行而没有“面部”的程序(例如,根本没有用户界面)通常被实现为Service

答案 3 :(得分:2)

在Windows中,Daemon程序实现为Services

答案 4 :(得分:1)

只需将其设为GUI应用程序而不是命令行应用程序。右键单击项目 - &gt;属性 - &gt;配置属性 - &gt;链接器 - &gt;系统 - &gt;子系统 - &gt; Windows(/ SUBSYSTEM:WINDOWS)。

答案 5 :(得分:0)

您可以作为Windows进程运行(不附加到控制台),但从不创建窗口。主要区别是WinMain的签名和编译器的标志。

转到文件 - &gt;在New Project中,选择标准Windows应用程序,然后删除除WinMain以外的所有内容。