Compilation 如果在C+下,则以编程方式查找+;或C++/CLI

Compilation 如果在C+下,则以编程方式查找+;或C++/CLI,compilation,c++-cli,Compilation,C++ Cli,我希望我的C++/CLI头即使在另一个平台下也能编译。当然,我并不期望编译它们,只是忽略它们 这样合适吗?(_MSC_VER) 谢谢 您可以使用\uuu cplusplus\u cli预定义宏: 很抱歉,我说得太快了,它不起作用,但是“托管”起作用。@Aybe,这很奇怪,如果指定了/clr选项,两个宏都应该定义。您可能正在使用/clr:oldSyntax?既然C++是C++ C++的,我认为它是c++/CLI,因为我在VS2010上,但你会告诉我,实际上我的第一个项目是C++ +代码> CLR

我希望我的C++/CLI头即使在另一个平台下也能编译。当然,我并不期望编译它们,只是忽略它们

这样合适吗?(_MSC_VER)


谢谢

您可以使用
\uuu cplusplus\u cli
预定义宏:


很抱歉,我说得太快了,它不起作用,但是“托管”起作用。@Aybe,这很奇怪,如果指定了
/clr
选项,两个宏都应该定义。您可能正在使用
/clr:oldSyntax
?既然C++是C++ C++的,我认为它是c++/CLI,因为我在VS2010上,但你会告诉我,实际上我的第一个项目是C++ +代码> CLR < /C>是C++ + CLI,但是在这种情况下,也应该定义<代码>我无法解释为什么在您的案例中它不是(但
\u MANAGED
是)。好吧,我现在明白了,它没有显示在Intellisense中,我也无法导航到它,但它存在,我用#ifdef u cplusplus_cli#pragma message(“cli”)检查过
#ifdef _MSC_VER

    using namespace System;

        namespace ENMFP {

            public ref struct Data {
            };
        }

#endif
#ifdef __cplusplus_cli

using namespace System;

namespace ENMFP
{
    public ref struct Data
    {
        // ...
    };
}

#endif  // __cplusplus_cli