我继承了C ++代码库,需要创建一个新的前端。我希望使用Windows通用运行时组件将UWP组合到C ++代码。我在原始类型方面取得了一些成功,并将它们从C ++返回到后面的C#代码。但是,当我尝试任何非原始的操作时,都会出现此错误:
严重性代码描述项目文件行抑制状态 错误C3986'functionName':公共成员的签名包含本机 类型'C ++ Class :: Struct'(编译源文件 Class.cpp)WRC wrc1 \ class.h
是否有任何方法可以装饰C ++类/结构,使它们可以返回到后面的UWP项目C#代码?
答案 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有很多信息,因此可能值得浏览以获取更多信息。