WinRTコンポーネントには次のものがあります。
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;
}
ただし、C#から呼び出された場合、メソッド内では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のメソッド内で更新されるように、参照によって構造体を渡す正しい方法は何ですか?