2013-06-24 141 views
1

我目前正在制作一个C++ GUI应用程序,但我遇到以下问题。在程序中我有一个MyForm.cpp和一个Myform.h(只有一个按钮)。当应用程序启动控制台并打开窗体时。这是默认的吗?或者我该如何禁用它?主要代码是:控制台在运行GUI C++应用程序时打开

#include "MyForm.h" 

using namespace System; 
using namespace System::Windows::Forms; 

[STAThread] 
int main(array<String^>^ args) 
{ 
    Application::EnableVisualStyles(); 
    Application::SetCompatibleTextRenderingDefault(false); 

    Namespace::MyForm form; 
    Application::Run(%form); 
} 

希望有人能帮忙吗?

+0

我看来你实际上并没有将它编译为windows应用程序。在项目设置中有一个选项可以在控制台和Windows应用程序之间进行切换(Windows应用程序不能使用控制台,而控制台应用程序可以显示窗体,但总是可以看到控制台)。 –

回答

3

在你的.pro文件中添加此: - >属性 - >连接 -

ENTRY = mainCRTStartup 

OR

在VS,右键点击你的项目>系统

,选择“窗口(/SUBSYSTEM:WINDOWS)“子系统。

+1

这有效,但我不得不添加:/ ENTRY:“mainCRTStartup”到属性 - >链接器 - >命令行 – compu92

2

如果您使用的是CRT建立和存在,你可以使用这个没有WinMain函数:

#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")//hide console window

隐藏控制台。

+1

我不确定隐藏在代码中的编译指示是否是编译器选项的最佳位置。 –

+1

这是一个代码问题,所以我虽然我会回答代码,否则只是去链接器选项,并将子系统更改为Windows ..(但如果你这样做,你需要有“WinMain”) – 2013-06-24 12:43:58

+0

其实这是一个很好,甚至如果骇人听闻,解决方案。 –

相关问题