c# - 如何在 C++/CLI 中使用 C# 枚举

标签 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:
            static MyNamespace::MyEnum Go();
    };

}

CPP:

#include "StdAfx.h"
#include "API.h"

using namespace NativeWrapper;

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

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

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

最佳答案

您需要冒号,而不是句号。

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

另请注意,如果 MyEnum 最初是用 C++/CLI 编写的,您需要将其声明为 public enum class MyEnum { ... } 以使其成为托管枚举,您可以从 C# 使用。

关于c# - 如何在 C++/CLI 中使用 C# 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9068326/

相关文章:

c++-cli - 简单地将 C++/CLI int^ 转换为非托管 int*

c# - 如何在 C++/cli 中声明委托(delegate)并在 C# 中使用它

c# - MediaElement.IsLoaded 谎言

c# - 在 LINQ to SQL 连接中使用包含

c# - 内存中的 SQLite - TransactionScope - 已检测到环境事务

c# - C++/CLI System.Timers.Timer 在将 Interval 设置为 100ms 时已过去 20 秒

visual-c++ - C++/CLI 句柄运算符

.net - 字典与 KeyPairValue 的使用

c++-cli - C++/CLI 中的文字字段与常量变量

c# - C#OpenFileDialog打开包含单个文件的zip文件夹?