如何在C++-CLI? 我有一个C++ -CLI REF类,它公开了C++中的一个概要基础结构。 在C++中,我有预处理器指令 PrimuleGIN启用< /COD>来确定侵入式分析功能是否在代码中。
当向托管代码公开这些内容时,我认为使用托管如何在C++-CLI? 我有一个C++ -CLI REF类,它公开了C++中的一个概要基础结构。 在C++中,我有预处理器指令 PrimuleGIN启用< /COD>来确定侵入式分析功能是否在代码中。,c++,c++-cli,managed,C++,C++ Cli,Managed,当向托管代码公开这些内容时,我认为使用托管ConditionalAttribute是合适的。但我很难理解语法 以下是我的尝试: #ifdef PROFILING_ENABLED // c++ macros are defined and active on the project level, I would like the // conditional attribute to be active as well. #define MANAGED_PROFILING_ENABLED
ConditionalAttribute
是合适的。但我很难理解语法
以下是我的尝试:
#ifdef PROFILING_ENABLED
// c++ macros are defined and active on the project level, I would like the
// conditional attribute to be active as well.
#define MANAGED_PROFILING_ENABLED
// how do I define the managed conditional "MANAGED_PROFILING_ENABLED" in C++-CLI?
#endif
public ref class Profiler
{
public:
[ConditionalAttribute("MANAGED_PROFILING_ENABLED")] // this compile but always inactive
static void PushRange(System::String ^ name, Color color);
[ConditionalAttribute("MANAGED_PROFILING_ENABLED")]
static void PopRange();
};
我希望实现以下目标:
如果本机C++预处理器指令为“强>活动< /强>,托管条件属性应该是<强>活动< /强>。
另一方面,如果本机C++预处理器指令是“强”>“不活跃”<强>,则托管条件属性应该是<强>不活动> < P>下面的标准文档相当旧。但假设,可能仍然有效 转到第29.4.3节(您可以在下面找到关于c++/CLI中的条件属性的内容) C++/CLI不提供此功能;虽然这个 如果接受类型,则它们对代码生成或 执行
我会进一步澄清。所有的编译,C++预处理器指令是肯定的。只有“管理条件”属性始终为false。根据C++预处理器指令,我希望它是活动的。@ AdRiaRoRePeTi我做了一些编辑,希望这会使意图更加清晰。C++ + CLI编译器没有管道来做[FAILL]的事情,你可以用C++的方式来做。使用#ifdef.@HansPassant当我在C++/CLI上使用[Conditional]时,它确实会起作用。缺少的只是字符串条件参数。不管怎样,我现在用的是ifdef。