【问题标题】:using namespace System; in Visual Studio 2013使用命名空间系统;在 Visual Studio 2013 中
【发布时间】:2015-02-28 03:39:27
【问题描述】:

我正在尝试使用Console::SetCursorPosition(int, int) 方法。当我添加行 using namespace System; 时,如前面 MSDN 文档中的 C++ 示例所示,我收到错误 "Error: name must be a namespace name"。我已经尝试了几个小时了,但令人沮丧的是没有成功。我遇到了大量有关 Visual Studio 2010 和 2012 的文档,但 2013 年的文档很少。我最接近的是 Lib Files as Linker Input。步骤 1-3 很简单,但步骤 4 对我来说不是很清楚:“修改 Additional Dependencies 属性。”。查看已经存在的内容,似乎我可以添加一个 .lib 文件。但我没有 System.lib。

如此沮丧,如此困惑。

如何在 Visual Studio 2013 Update 4 for C++ 中使用系统命名空间?

【问题讨论】:

  • System 命名空间是 .Net 框架的一部分,可用于“CLR”项目,但不适用于本机 Win32 C++ 项目。
  • 对于 Visual Studio 2019,您可以在此处查看答案:stackoverflow.com/questions/16732789/…

标签: c++ visual-studio-2013 namespaces using


【解决方案1】:

为了正式化和扩展我的评论,Console class 和通常的 System namespace 是 .NET 框架的一部分。

在这种情况下,Console::SetCursorPosition(int, int) 方法的 MSDN 文档页面中包含的“C++”选项卡实际上是指C++/CLI language。 C++/CLI 语言与C++ language 不同(尽管有意相似)。相应地,C++/CLI 语言包含各种编译 Win32 项目时使用的 C++ 编译器工具集无法识别的结构。

换句话说,要消除"Error: name must be a namespace name" 错误,您需要将您的 Win32 C++ 项目转换为 CLR 项目。最简单的方法是创建一个新项目,选择“Visual C++”/“CLR”下的模板之一:

与 CLR 项目的 Win32 项目的 .lib 文件依赖关系(相对于您的 Lib Files as Linker Input 链接)的等效项是程序集引用。然后,您通常会在“Common Properties , References”项目属性下使用“Add References”添加这些程序集引用:

但是,在您的具体情况下,您很可能会发现 System 程序集引用已包含在 CLR 项目模板中。 您可能需要在 MSDN 上查看 How to: Add or Remove References 以了解更多详细信息。

最后,如果您绝对要手动转换现有 Win32 项目,则需要将“常规”下的“公共语言运行时支持”项目属性和“C/C++ ,常规”选项卡设置为@987654335 之一@、/clr:pure/clr:safe/clr:oldSyntax(取决于您的特定应用程序要求;如果您只是在玩玩,您可能希望从 /clr 开始)用于所有配置和平台,并指定目标 . Net framework 版本,直接编辑 .vcxproj(如this answer 所示)。您还需要像上面的新项目方法一样添加程序集依赖项。

【讨论】:

    【解决方案2】:

    您必须在配置属性 - 常规中设置Common Language Runtime Support (/clr)

    在配置属性 - C/C++ - 常规:

    【讨论】:

    • 非常感谢
    【解决方案3】:

    您有一个Win32 Console Application 的项目,并且您正在使用.NET 命名空间。在 Win32 控制台应用程序中,标准库中只有 4-5 个命名空间,包括 std。试试顶部的using namespace std;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 2015-10-06
      • 2014-02-24
      • 2013-11-25
      相关资源
      最近更新 更多