确保VS 2008将我的项目视为C ++而不是C ++ / CLI

| 我正在使用本机C ++在Visual Studio 2008中工作。 一位同事写了一个图书馆,他给班上的一个班命名为“ 0”。这是一个构造函数:
template <typename DtedInterface>
interface<DtedInterface>::interface (
    std::string const& tleFile,
    std::string const& dtedDir,
    dted::DtedLevel const& dtedLevel,
    double sw_latitude,
    double sw_longitude,
    unsigned int rows,
    unsigned int columns )
    : m_impl ( new interface_impl<DtedInterface> ( theFile, dtedDir, dtedLevel, sw_latitude, sw_longitude, rows, columns ) )
  {}
让我担心的是Visual Studio 2008突出显示了单词“ 0”作为关键字。
interface
是C ++ / CLI中的关键字,而不是C ++中的关键字。看起来好像不是有效的C ++ / CLI,但是对于本机C ++来说很好。 看起来它们可以很好地编译,但是如何确保Visual Studio将其解释为C ++而不是C ++ / CLI?在某种程度上,VS似乎将其视为C ++ / CLI。仅仅是关键字突出显示设置吗?     
已邀请:
        Visual Studio IDE和Visual C ++编译器是两个单独的实体。具体来说,它们是两个单独的可执行文件(对于IDE,为
devenv.exe
,对于编译器为
cl.exe
),它们作为单独的进程运行。 IDE只是生成“ 5”进程来执行实际的编译。 IDE在某处有一个关键字列表,可以简单地告诉文本编辑器突出显示哪些单词。它不是非常复杂。不一定是。编译器拥有最终决定权,而不是语法突出显示工具(或者说是Intellisense)。 只要不将
/clr
开关传递给
cl.exe
进程,编译器便会将代码编译为本机C ++(这是默认设置)。 IDE只是提供源代码的文件路径,而编译器将作为命令行参数切换到switches5ѭ进程。语法高亮与编译器如何解释代码无关。     
        如果您使用的是C ++ / CLI,则该代码将拒绝编译,因此,只要按\“ build \”并且它可以工作,那么您就知道您使用的是本机。也有用于CLR构建的预定义宏。     
        如果确实需要确认它不是在编译托管C ++,请查看项目属性,然后在“配置属性”->“常规”下检查“公共语言运行时支持”设置。同样,对于“配置属性”->“ C / C ++”->“常规”下的每个文件的属性,请检查\“使用公共语言运行时支持编译\”设置。如果所有这些都设置为\“ No Common Language Runtime support \”,则该项目不是托管C ++。     

要回复问题请先登录注册