【发布时间】:2012-09-16 05:16:31
【问题描述】:
我在这里缺少什么?我认为 ^ 是一个智能指针,我可以通过 ref 将字符串传递给函数。其他帽子对象呢?
// 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 行,则会在一个类上调用一个静态函数,其中一些字符串参数是 populage,_str1 和 _str2。在函数 GetStrings 中,字符串被填充并且看起来都很好。当调用返回时(第 3 行),变量 _str1 和 _str2 不再有效。为什么?
-
这两个变量被设置为 temp,它存在于堆栈中并在函数返回时被消除>这样做的正确方法是什么?
标签: visual-c++ windows-runtime c++-cx