如何在C+中使用C#Enum+/CLI

如何在C+中使用C#Enum+/CLI,c#,c++-cli,C#,C++ Cli,我有一个包含枚举的C#程序集: public enum MyEnum { OK = 0, NOT_OK = -1 } 我已经添加了对C++/CLI项目的引用,但我不知道如何从函数返回值 标题: #pragma once using namespace System; using namespace MyNamespace; namespace NativeWrapper { public ref class API { public:

我有一个包含枚举的C#程序集:

public enum MyEnum
{
    OK = 0, 
    NOT_OK = -1
}
我已经添加了对
C++/CLI
项目的引用,但我不知道如何从函数返回值

标题:

#pragma once

using namespace System;
using namespace MyNamespace;

namespace NativeWrapper {

    public ref class API
    {
        public:
            static MyNamespace::MyEnum Go();
    };

}
CPP:

我在构建项目时得到以下信息:


错误C2275:“MyNamespace::MyEnum”:非法使用此类型作为表达式

您需要冒号,而不是句点

MyNamespace::MyEnum API::Go()
{
    return MyEnum::OK;
}

另外,请注意,如果MyEnum最初是用C++/CLI编写的,则需要将其声明为
公共枚举类MyEnum{…}
,以使其成为可从C#使用的托管枚举。

需要冒号,而不是句号

MyNamespace::MyEnum API::Go()
{
    return MyEnum::OK;
}
另外,请注意,如果MyEnum最初是用C++/CLI编写的,则需要将其声明为
公共枚举类MyEnum{…}
,以使其成为可从C#使用的托管枚举。

挑剔:它是“本机的”,而不是“非托管的”。(您没有看到本地开发人员将CLR称为“非动态的”,是吗?:P)吹毛求疵:它是“本地的”,而不是“非托管的”。(您没有看到本地开发人员将CLR称为“非动态”,是吗?:P)