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

2019-05-06 09:53发布

我刚安装了Visual Studio 2012 Express的桌面。 我看不到任何地方创建与C ++ GUI应用程序! 当使用到存在在Visual C ++ 2010这个“Windows窗体应用程序”? 凡有这些拖放控件? 我安装了这一点,因为我得到的信息告诉该支持GUI的智能感知( 视觉C ++:无法从另一个类调用方法 )

请帮忙!

Answer 1:

这是一个那么直接暗示,他们希望你停止创造C ++ / CLI的WinForms应用。 该管道仍然存在但是,至少在VS2012和VS2013。 这可能不是在未来的一个情况。

你可以把一个CLR控制台应用程序与这些步骤一个WinForms应用程序:

  • 先从文件+新建项目+,CLR节点,CLR控制台应用程序
  • 项目+添加新项,UI节点,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;
    }
}

请注意,您需要将命名空间名称更改为您的项目名称。 按F5测试。 一旦一切正常您可以设计形式为正常。


注意时,Visual Studio 2015年已在CRT讨厌的静态初始化顺序错误,可导致应用程序在启动时的瞬间大道崩溃,如果项目包含任何本地C ++代码。 作为又一个不固定的错误,将除去这些项目模板的有些不可避免的危险。 可能的解决方法是改变入口点(第4弹)。

对于一个项目,目标86,复制粘贴此字符串:

?mainCRTStartupStrArray@@$$FYMHP$01AP$AAVString@System@@@Z

对于针对64位项目,复制粘贴:

?mainCRTStartupStrArray@@$$FYMHP$01EAPE$AAVString@System@@@Z


文章来源: How do I create a C++/CLI Winforms app in VS2012?