visual studio 2012 -如何在VS2012中创建c++ /CLI Winforms应用程序



我刚刚安装了Visual Studio 2012 express for Desktop。我看不到用c++创建GUI应用程序的任何地方!在Visual c++ 2010中使用的"Windows窗体应用程序"在哪里?这些拖放控件在哪里?我安装了这个,因为我得到了详细信息,告诉这支持GUI智能感知(Visual c++:无法从另一个类调用方法)

这是一个明显的暗示,他们希望你停止创建c++/CLI Winforms应用程序。然而,至少在VS2012和VS2013中,管道仍然存在。这可能不是未来的情况。

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

  • 从文件+新建+项目,CLR节点,CLR控制台应用程序
  • 开始
  • 项目+添加新项目,UI节点,Windows窗体
  • 项目+属性,链接器,系统,子系统= 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项)。

对于目标为x86的项目,复制粘贴这个字符串:

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

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

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

在VS2017的某个地方,设计器无法打开带有神秘错误消息的新表单。解决方法是先构建项目,使用build> build .

删除#include "stdafx.h"这对VS 2022很有效。表单必须手工编码,因为表单设计器支持从VS 2012开始被删除。

相关内容

  • 没有找到相关文章

最新更新