如何在VS2012中创建C++/CLI Winforms应用程序?

Pea*_*Gen 3 user-interface c++-cli winforms visual-studio-2012

我刚安装了Visual Studio 2012 express for Desktop.我看不到用C++创建GUI应用程序的任何地方!这个"Windows窗体应用程序"曾经存在于Visual C++ 2010中的哪个位置?这些拖放控件在哪里?我安装了这个,因为我得到的细节告诉它支持GUI intellisense(Visual C++:无法从另一个类调用方法)

请帮忙!

Han*_*ant 14

这是一个不明确的提示,他们希望您停止创建C++/CLI Winforms应用程序.然而,管道仍然存在,至少对于VS2012和VS2013.未来可能不会出现这种情况.

您可以使用以下步骤将CLR控制台应用程序转换为Winforms应用程序:

  • 从File + New + Project,CLR节点,CLR控制台应用程序开始
  • 项目+添加新项目,UI节点,Windows窗体
  • Project + Properties,Linker,System,SubSystem = Windows
  • 项目+属性,链接器,高级,入口点=主要

将预生成的.cpp文件更改为如下所示:

#include "stdafx.h"
#include "MyForm.h"

namespace ConsoleApplication45 {    // Change this!!
    using namespace System;
    using namespace System::Windows::Forms;

    [STAThread]
    int main(array<System::String ^> ^args)
    {
        Application::EnableVisualStyles();
        Application::SetCompatibleTextRenderingDefault(false); 
        Application::Run(gcnew MyForm());
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,您需要将命名空间名称更改为项目名称.按F5进行测试.一切都结束后,您可以正常设计表单.


注意,Visual Studio 2015在CRT中有一个讨厌的静态初始化命令错误,如果项目包含任何本机C++代码,它可能导致应用程序在启动时立即与AVE崩溃.作为一个未修复的bug,删除这些项目模板的可能性有些不可避免. 可能的解决方法是更改入口点(第4个项目符号).

对于以x86为目标的项目,请复制粘贴此字符串:

?mainCRTStartupStrArray@@$$FYMHP$01AP$AAVString@System@@@Z
Run Code Online (Sandbox Code Playgroud)

对于以x64为目标的项目,请复制粘贴:

?mainCRTStartupStrArray@@$$FYMHP$01EAPE$AAVString@System@@@Z
Run Code Online (Sandbox Code Playgroud)