0

我正在尝试通过引用(使用函数)更改变量值。

我的功能:

void chgVariable(String^ *trgvari,String^ trgvarival)
{
 *trgvari = trgvarival;
}

我的变量:

String^ myStringVar;

我如何使用:

chgVariable(&myStringVar, gcnew String("Test"));

但我收到此错误:

无法将参数 1 从 'cli::interior_ptr' 转换为 'String ^*'

4

1 回答 1

0

您对第一个参数的定义是错误的。它应该是:

void chgVariable(String* ^trgvari,String^ trgvarival)

如果以 开头String^ myStringVar,则&myStringVar成为指向 a 的指针String^,显示为String*^

另外,现在当你取消引用它时,你应该得到String^你想要的。

编辑:

不幸的是,C++CLI 不允许指向句柄的指针,因此您应该将其作为对句柄的引用,如下所示:

void chgVariable(String^% trgvari,String^ trgvarival)

并更改&myStringVarmyStringVar.

这个其他stackoverflow问题的很多功劳:在C ++ / CLI中通过引用传递参数,因此重新分配会影响调用者

于 2013-08-09T12:59:04.223 回答