提问人:aybe 提问时间:4/2/2012 更新时间:4/2/2012 访问量:3496
如果在 C++ 或 C++/CLI 下以编程方式查找
Find programmatically if under C++ or C++/CLI
问:
我希望我的 C++/CLI 标头即使在另一个平台下也能编译。当然,我并不期望编译它们,而是忽略它们。
这合适吗?(_MSC_VER)
#ifdef _MSC_VER
using namespace System;
namespace ENMFP {
public ref struct Data {
};
}
#endif
谢谢!
答:
17赞
Frédéric Hamidi
4/2/2012
#1
您可以使用此处记录的预定义宏:__cplusplus_cli
#ifdef __cplusplus_cli
using namespace System;
namespace ENMFP
{
public ref struct Data
{
// ...
};
}
#endif // __cplusplus_cli
评论
0赞
aybe
4/2/2012
对不起,我说得太快了,它不起作用,但是_MANAGED有效。
0赞
Frédéric Hamidi
4/2/2012
@Aybe,这很奇怪,如果指定了选项,则应该定义两个宏。你有机会使用吗?在这种情况下,你的目标是托管C++,而不是 C++/CLI :)/clr
/clr:oldSyntax
0赞
aybe
4/2/2012
它是 /clr,我认为它是 C++/CLI,因为我在 VS2010 上,但你会告诉我,实际上这是我在 C++ 中的第一个项目
0赞
Frédéric Hamidi
4/2/2012
/clr
确实是 C++/CLI,但在这种情况下也应该定义......我无法解释为什么它不是(但是)在你的情况下。__cplusplus_cli
_MANAGED
3赞
aybe
4/3/2012
好的,我现在明白了,它没有显示在 Intellisense 中,我也无法导航到它,但它存在,我用 #ifdef __cplusplus_cli #pragma message(“cli”) 检查了一下
下一个:什么是传递引用?
评论