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

Windows Runtime Component C++ Struct/Classes Returned to UWP

本文关键字:返回 UWP 结构 运行时 组件 Windows      更新时间:2023-10-16

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

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

有什么方法可以以某种方式来装饰C 类/结构,它们可以返回到UWP项目C#code后面?

允许结构作为班级的公共成员,您应该标记它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;}
        }
    };
}

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