Windows运行时组件C ++结构/类返回到UWP

时间:2018-12-19 16:21:13

标签: c# c++ uwp windows-runtime

我继承了C ++代码库,需要创建一个新的前端。我希望使用Windows通用运行时组件将UWP组合到C ++代码。我在原始类型方面取得了一些成功,并将它们从C ++返回到后面的C​​#代码。但是,当我尝试任何非原始的操作时,都会出现此错误:

  

严重性代码描述项目文件行抑制状态   错误C3986'functionName':公共成员的签名包含本机   类型'C ++ Class :: Struct'(编译源文件   Class.cpp)WRC wrc1 \ class.h

是否有任何方法可以装饰C ++类/结构,使它们可以返回到后面的UWP项目C#代码?

1 个答案:

答案 0 :(得分:0)

要允许某个结构作为类的公共成员,应将其标记为public value struct

Here是返回自定义结构的示例。

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;}
        }
    };
}

documentation有很多信息,因此可能值得浏览以获取更多信息。