Компонент / классы среды выполнения Windows C ++ возвращены в UWP - PullRequest
0 голосов
/ 19 декабря 2018

Я унаследовал кодовую базу C ++ и мне нужно создать новый интерфейс.Я надеялся использовать Windows Universal Runtime Component для объединения UWP и кода C ++.У меня был некоторый успех с примитивными типами и возвращением их из C ++ в код C # позади.Однако, когда я пытаюсь сделать что-нибудь не примитивное, я получаю эту ошибку:

Код серьезности Описание Ошибка состояния подавления строки файла проекта C3986 'functionName': подпись открытого члена содержит собственный тип 'C ++ Class :: Struct'(компиляция исходного файла Class.cpp) WRC wrc1 \ class.h

Есть ли способ декорировать классы / структуры C ++ так, чтобы они могли быть возвращены в код C # проектов UWP?

1 Ответ

0 голосов
/ 19 декабря 2018

Чтобы структура была разрешена как открытый член класса, вы должны пометить ее public value struct.

Здесь является примером возврата пользовательской структуры.

namespace CppComponent
{
    // Custom struct
    public value struct PlayerData
    {
        Platform::String^ Name;
        int Number;
        double ScoringAverage;
    };

    public ref class Player sealed
    {
    private:
        PlayerData m_player;
    public:
        property PlayerData PlayerStats
        {
            PlayerData get(){ return m_player; }
            void set(PlayerData data) {m_player = data;}
        }
    };
}

Документация содержит много информации, поэтому, возможно, стоит поискать дополнительную информацию.

...