【发布时间】:2021-10-25 14:47:23
【问题描述】:
我有一个 C++ 库,它正在使用 C++ CLI 进行包装。 CLI 库有这样的函数声明:
void changeString(System::String^ message)
在 C# 中,我有一个字符串变量,我这样传递:
string myString = "This should be gone";
CLI_Wrapper_Object.changeString(myString);
回到 CLI 库中,我尝试以下操作:
void changeString (System::String^ message){
message = "New Message";
}
这似乎改变了 CLI 级别的值,而不是 C# 级别的值。我可以看到它肯定是通过调试器更改的,但是一旦我跳回 C#,我就会再次看到旧的初始值。
我尝试过的其他方法:
message = gcnew System::String("New Message");
是否有可能做我试图实现的目标?
【问题讨论】: