Как использовать C # Enum в C ++ / CLI - PullRequest
1 голос
/ 30 января 2012

У меня есть сборка 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;
}

При сборке проекта я получаю следующее:

error C2275: 'MyNamespace::MyEnum' : illegal use of this type as an expression

1 Ответ

10 голосов
/ 30 января 2012

Вам нужны двоеточия, а не точка.

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

Также обратите внимание, что если MyEnum изначально был написан на C ++ / CLI, вам нужно объявить его как public enum class MyEnum { ... }, чтобы сделать его управляемым перечислением, которое вы можете использовать из C #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...