如何使用Visual Studio 2010在Win32项目中隐藏控制台窗口

时间:2012-10-24 14:34:12

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

我需要在启动应用程序期间创建一个没有控制台窗口或(任何其他窗口)的exe应用程序。

我为此尝试了以下内容:

  1. 使用Visual Studio 2010,将Win32控制台应用程序创建为空项目。
  2. 在项目中添加了头文件“stdafx.h”
  3. 在项目中添加了一个cpp文件,并添加了以下代码。
  4. 项目设置是visual stduio default。

    #include "stdafx.h"
    #include <windows.h>  
    #include "TlHelp32.h"
    #include <iostream>
    #include <string>
    int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
    {
    
            return 0;
    }
    
  5. 上面的代码汇编得很好。

    但如果我将字符集更改为“使用Unicode字符集”,则会出现以下编译错误。

      

    错误C2731:'WinMain':函数无法重载

    我正在Windows 7 64位计算机和Visual Studio Build平台上构建应用程序x64。

    提前感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

是的,当您使用UNICODE生成时,入口点将获取命令行参数的Unicode字符串。所以这需要一个不同的声明:

  int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
                        LPWSTR lpCmdLine, int nShowCmd)

或者您可以使用#include <tchar.h>,因此无论哪种方式都可以使用,这些日子并不重要:

  int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
                         LPTSTR lpCmdLine, int nCmdShow)

答案 1 :(得分:0)

创建Windows服务而不是控制台应用程序。

答案 2 :(得分:0)

在Visual Studio中,创建一个新的“EMPTY项目”。添加名为“main.cpp”的新源文件。使用以下模板(假设您要使用Unicode构建):

<li>