我刚刚为桌面安装了 Visual Studio 2012 express。我看不到任何用 C++ 创建 GUI 应用程序的地方!Visual C++ 2010 中曾经存在的“Windows 窗体应用程序”在哪里?这些拖放控件在哪里?我安装了这个,因为我有详细信息告诉它支持 GUI 智能感知(Visual C++:无法从另一个类调用方法)
问问题
9845 次
1 回答
14
他们希望您停止创建 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++ 代码,它可能会导致应用程序在启动时立即崩溃并出现 AVE。作为一个未修复的错误,删除这些项目模板有些不可避免的危险。 一种可能的解决方法是更改入口点(第 4 个项目符号)。
对于以 x86 为目标的项目,复制粘贴此字符串:
?mainCRTStartupStrArray@@$$FYMHP$01AP$AAVString@System@@@Z
对于以 x64 为目标的项目,复制粘贴:
?mainCRTStartupStrArray@@$$FYMHP$01EAPE$AAVString@System@@@Z
在 VS2017 附近的某个地方,设计人员无法打开带有神秘错误消息的新表单。解决方法是先构建项目,使用 Build > Build。
于 2013-03-03T20:21:50.627 回答