为什么我不能在非托管类中存储托管变量?

时间:2010-12-19 15:11:46

标签: visual-c++

我在visual studio 2005中设置了用户界面,它有一个文本框和一个按钮。当使用storeText(String ^)按下按钮时,我试图将文本存储在文本框中。我的编译错误说“无法在非托管类中声明托管变量”。为什么我不能这样做?什么是我的问题的正确解决方案。我正在使用visual c ++。

#include <string>
using System::String;

class Stuff
{
public:
Stuff()
{
}

void storeText(String^ s)
{
    something = s;
}

String^ getText()
{
    return something;
}

private:
String^ something;
};

1 个答案:

答案 0 :(得分:0)

如果您使用的是非托管代码,那么GC将不知道您拥有或未使用的引用。您应该将其转换为本机std :: string然后使用它。