使用命名空间System; 在Visual Studio 2013中

Evo*_*lor 4 c++ namespaces using visual-studio-2013

我试图使用Console :: SetCursorPosition(int,int)方法.当我添加该行时using namespace System;,如前面的MSDN文档中的C++示例所示,我收到错误"Error: name must be a namespace name".我现在已经尝试了几个小时,但令人沮丧但没有成功.我已经看到了大量的Visual Studio 2010和2012的文档,但2013年的文档很少.我最接近的是Lib Files作为链接器输入.步骤1-3很简单,但我不清楚第4步:"修改附加依赖属性.".看看已经存在的内容,似乎我只能添加一个.lib文件.但是我没有System.lib.

如此沮丧,如此困惑.

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

Sle*_*Eye 6

为了形式化和扩展我的注释,Console和一般System命名空间是.NET框架的一部分.

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

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

创建新的C++ CLR项目

用于CLR项目的Win32项目的等效.lib文件depdendencies(相对于您的Lib文件作为链接器输入链接)将是程序集引用.然后,您通常会使用"Common Properties,References"项目属性下的"Add References"添加这些程序集引用:

CLR程序集引用

但是,在您的特定情况下,您可能会发现System程序集引用已作为CLR项目模板的一部分包含在内.您可能需要查看如何:在MSDN上添加或删除引用以获取更多详细信息.

最后,如果你绝对要手动转换现有的Win32项目,你需要设置"常规"下的"公共语言运行库支持"项目属性和"C/C++,常规"选项卡中的一个/clr,/clr:pure,/clr:safe/clr:oldSyntax(视关于您的特定应用程序要求;如果您只是想要开始使用/clr)所有配置和平台,以及通过直接编辑.vcxproj指定目标.Net框架版本(如本答案中所示).您还需要像上面的新项目方法一样添加程序集依赖项.