我刚刚安装了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开始被删除。