首页 > 解决方案 > 当我编译 CLR C++ 应用程序的“发布”版本时,除了 GUI 之外,我还会弹出一个 cmd 窗口。我该如何解决这个问题?

问题描述

这是我的主要功能。我不太清楚为什么会发生这种情况(我的第一个 GUI 应用程序,在此之前我总是使用 CLI)。在进行 Debug 构建时不会发生这种情况,只有在 Release 构建时才会发生。我正在使用 Visual Studio 2017,这是一个 Windows 应用程序:

#include "MyForm.h"

using namespace System;
using namespace std;
using namespace System::Windows::Forms;
[STAThread]

int main()
{
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    Project::MyForm form;
    Application::Run(%form);

    return 0;
}

标签: c++compilationclr

解决方案


我的猜测是您在项目的发布设置中指定了“命令行应用程序”。试试这个:创建一个新项目(假设您是 Visual Studio)并选择“GUI”作为您的项目类型。然后将设置与您当前的项目进行比较。当 Windows 加载 .exe 时,它​​会查看元数据以确定它是 CMD 还是 GUI 应用程序。元数据由链接器写入。


推荐阅读