我已经在我的WinRT组件如下:如何通过WinRT中组分C++/CX参考传递结构
public value struct WinRTStruct
{
int x;
int y;
};
public ref class WinRTComponent sealed
{
public:
WinRTComponent();
int TestPointerParam(WinRTStruct * wintRTStruct);
};
int WinRTComponent::TestPointerParam(WinRTStruct * wintRTStruct)
{
wintRTStruct->y = wintRTStruct->y + 100;
return wintRTStruct->x;
}
但是,似乎的winRTStruct-值> Y和X始终为0
WinRTComponent comp = new WinRTComponent();
WinRTStruct winRTStruct;
winRTStruct.x = 100;
winRTStruct.y = 200;
comp.TestPointerParam(out winRTStruct);
textBlock8.Text = winRTStruct.y.ToString();
什么是通过由参考一个结构,从而它的一个用C++编写/ CX一个WinRTComponent的方法内被更新的正确的方法:该方法中,从C#调用时内?
我不知道如何在WinRT中通过引用工作,但在C#中,如果您使用'out'传递参数,则不使用原始值,则需要'ref'。 – svick
@svick我在这里有点晚,但是我想补充一点,你可以选择使用'ref'或'&'符号(例如:'comp.TestPointerParam(&winRTStruct)' https:// msdn .microsoft.com/EN-US /库/ hh699870.aspx – user3164339