visual-studio - 从 VS 2013 到 VS 2017 的电话簿 GUI 转换不起作用
问题描述
我们在课堂上创建了一个反向电话簿查找。我们的学校系统在我们的机器上使用 VS 2013,而我在家用 PC 上使用 VS 2017。在学校构建的程序在 VS 2013 上运行良好,但是当我用 VS 2017 加载它并尝试执行它时,出现以下三个错误:
Severity Code Description Project File Line Suppression State Error (active) E0442 too few arguments for class template "std::array" GUIPhoneBook c:\Users\diabl\source\repos\GUIPhoneBook\GUIPhoneBook\MyForm.cpp 12
Severity Code Description Project File Line Suppression State Error C2976 'std::array': too few template arguments GUIPhoneBook c:\users\diabl\source\repos\guiphonebook\guiphonebook\myform.cpp 13
Severity Code Description Project File Line Suppression State Error C3699 '^': cannot use this indirection on type 'std::array' GUIPhoneBook c:\users\diabl\source\repos\guiphonebook\guiphonebook\myform.cpp 13
这就是我在 MyForm.cpp 中的内容
#include "MyForm.h"
#pragma once
using namespace System;
using namespace System::Windows::Forms;
[STAThread]
int Main(array<System::String ^> ^args)
{
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Application::Run(gcnew GUIPhoneBook::MyForm());
return 0;
}
我对 c++ 和构建 GUI 相当陌生,所以我不知道这意味着什么。我搜索了这个论坛并阅读了与此类似的问题的解决方案,但它们不起作用。有人对修复有任何想法吗?谢谢。
解决方案
我对c ++相当陌生......
标准的“学习语言”警告:这不是您正在编写的 C++,而是 C++/CLI。C++/CLI 是一种来自 Microsoft 的语言,旨在允许 C# 或其他 .Net 语言与标准 C++ 交互。在这种情况下,C++/CLI 可以提供两者之间的转换。如果您仍在学习 C++,请不要从 C++/CLI 开始。为了有效地用 C++/CLI 编写,一个人应该已经知道 C++ 和 C#,然后还有一些关于 C++/CLI 的东西需要学习。如果您想学习 C++,请坚持使用标准(非托管)C++。(在 Visual Studio 中,创建一个“Win32”C++ 项目。)如果你想学习托管代码,那么我会使用 C#。
那就是说...
int Main(array<System::String ^> ^args)
我没有调查原因,但出于某种原因,VS2017 是std::array
第一个找到的,而 VS2013 是cli::array
第一个找到的。正如您可能从收到的错误消息中猜到的那样,这两个类采用不同的模板/通用参数。(std::array
接受类型和大小,cli::array
接受类型并在创建对象时指定大小。)
cli::
要解决此问题,您可以在 main 的声明中明确指定 也可能using namespace std;
需要删除一个,或者添加using namespace cli;
也可以。
推荐阅读
- javascript - 页面动画不能通过点击按钮暂停
- python - SQLAlchemy ORM 关系停止工作
- mongodb - LocalDateTime 与 Spring Data API 和 MongoDB 的正确映射
- java - 如何将集合子项的所有值与固定输入进行比较?
- html - HTML标签 vs
- python - 在 Django 中聚合一个窗口查询集
- php - 在重力形式隐藏字段中保存自定义帖子类型标题
- html - 名称组件导航,包括我当前的位置菜单
- pine-script - 当价格越过它们时线被切断
- azure - 在注册/登录用户流中从我的 API 连接器返回的 JWT 令牌中未显示自定义值