C++-宏定义抛出错误

C++- Macro definition throwing error

我是 C++ 编程新手。我正在尝试一些事情 我尝试按照以下方式使用指令,如下面的程序所示,只是为了跟踪它抛出错误

IDE used:VS 2015

语言:VC++

项目类型:图书馆
发生的错误是错误:需要一个标识符

这是在Stdafx.h

#define MANAGED_PUBLIC  public ref

这是在trail.h

using namespace System;

namespace trail {

    MANAGED_PUBLIC class Class1
    {
        // TODO: Add your methods for this class here.
    };
}

我想在整个项目中每次都使用 MANAGED_PUBLIC 而不是使用 public ref

您可以尝试编译器标志:-DMANAGED_PUBLIC="public ref" 用于您的遗留代码(根据 msdn 去除引号)。

你不能那样做。 public ref 是上下文相关的关键字。你不能把它埋在宏下。 C++/CLI 编译器处理它的方式与常规编译器不同,因此宏结果不会是 public ref。你必须在任何地方输入它。

您可以使用两个宏:

#define MANAGED_PUB public
#define MANAGED_REF ref

MANAGED_PUB MANAGED_REF  class Class1
{
   // TODO: Add your methods for this class here.
};