我在这里丢失了什么?我认为^是一个智能指针,我可以通过引用传递一个函数。其他帽子物品呢?VC++通过Platform :: String ^参考
// calling code
MyClass::GetString(_str1, _str2);
// both strings are nullptr at this point
/* static */
MyClass::GetStrings(String^ str1, String^ str2)
{
// Read from Local Settings
auto value = localSettings->Values->Lookup(kKey);
String^ temp = ref new String(value->ToString()->Data());
str1 = temp;
// same for str2
}
究竟是不是在你认为的方式工作? –
我想通过ref传递字符串。如果你看第1-2行,一个静态函数在一个类中被调用,其中一些字符串参数为_str1和_str2。 在函数GetStrings中,字符串被填充并且看起来都很好。当调用返回时(第3行),变量_str1和_str2不再有效。为什么? – VaporwareWolf
这两个变量被设置为临时值,这是生活在堆栈上,并在函数返回时被删除>什么是正确的方法来做到这一点? – VaporwareWolf