我正在尝试创建一个支持Windows Phone 8的运行时组件。 该计划的简要说明如下:
C#代码:
using TestWRC;
namespace TestPrj
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
VVoIP v1 = new VVoIP();
A a1 = new A();
a1.a = 10;
v1.init(a1);
}
}
}
C ++代码:
namespace TestWRC
{
public ref struct A sealed
{
public:
property int a;
};
struct B {
A^ A_obj;
};
public ref class VVoIP sealed
{
private:
B array[3]; /* Array of object to have multiple instance */
public:
void init(A a1);
};
}
using namespace TestWRC;
void VVoIP::init(A a1)
{
array[0].A_obj->a = a1.a; /* Filling local array with initialized data*/
}
来自上述代码的以下错误:
错误C3992:'init':公共成员的签名包含无效类型'TestWRC :: A'
我是Windows手机8的新手,有人请告诉我这是什么错误,以及如何纠正这个问题。 提前谢谢。
答案 0 :(得分:3)
您的公共签名需要指定这是一个Windows运行时引用计数对象,因此您需要使用hat(^)语法声明。
void init(A^ a1);