我已經在我的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