使用命名空间系统;在 Visual Studio 2013 年

using namespace System; in Visual Studio 2013

我正在尝试使用 Console::SetCursorPosition(int, int) method. When I add the line using namespace System;, as shown in the C++ example from the preceding MSDN documentation, I get the error "Error: name must be a namespace name". I have been trying stuff for a couple hours now, but frustratingly without success. I have come across a ton of documentation for Visual Studio 2010 and 2012, but very little for 2013. The closest I have come is Lib Files as Linker Input。步骤 1-3 很简单,但我不清楚步骤 4:"Modify the Additional Dependencies property."。查看已经存在的内容,似乎我可以添加一个 .lib 文件。但是我没有 System.lib.

好沮丧,好困惑。

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

为了形式化和扩展我的评论,Console class and generally the System namespace 是 .NET 框架的一部分。

在这种情况下,"C++" 选项卡包含在 Console::SetCursorPosition(int, int) method actually refers to the C++/CLI language. The C++/CLI language is distinct (although intentionally similar) from the C++ language 的 MSDN 文档页面中。相应地,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 link)的等效项将是程序集引用。然后,您通常会在 "Common Properties , References" 项目属性下添加带有 "Add References" 的程序集引用:

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

最后,如果您绝对想手动转换现有的 Win32 项目,则需要将 "General" 和 "C/C++ , General" 选项卡下的 "Common Language Runtime Support" 项目属性设置为 [ =14=、/clr:pure/clr:safe/clr:oldSyntax(取决于您的具体应用要求;如果您只是玩玩,您可能希望从 /clr 开始)所有配置和平台,并通过直接编辑 .vcxproj 指定目标 .Net 框架版本(如 this answer 中所示)。您还需要像上面的新项目方法一样添加程序集依赖项。

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

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

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