通过引用c ++ / windows表单更改变量值

时间:2013-08-09 12:46:37

标签: winforms c++-cli

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

我的功能:

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

我的变量:

String^ myStringVar;

我如何使用:

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

但是我收到了这个错误:

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

1 个答案:

答案 0 :(得分:0)

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

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

如果您从String^ myStringVar开始,则&myStringVar会成为String^的指针,显示为String*^

此外,现在当你取消引用它时,你应该得到String^,就像你想要的那样。

修改

不幸的是,C ++ CLI不允许指向句柄的指针,所以你应该把它作为对句柄的引用,如下所示:

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

并将&myStringVar更改为myStringVar

对此另一个stackoverflow问题很有信心:Pass an argument by reference in C++/CLI so re-assignment affects the caller