为什么 Microsoft 的 C++/CLI 不允许我通过引用传递字符串?我收到以下错误:
C3699: '&': 无法在类型 'System::String' 上使用此间接寻址
首先,.NET 实际上有两种 Microsoft 特定的 C++ 方言:较旧的“托管 C++”(Visual Studio 2002 和 2003)和 C++/CLI(Visual Studio 2005 及更高版本)。
在 C++/CLI 中,System::String^
是对字符串的 .NET 引用;一些作者将其称为“跟踪指针”,以将其与普通的 C++ 指针进行比较和对比。与在 C++ 中一样,您可以“通过引用”传递 .NET 引用,但不使用&
, 你用%
, as in:
void makeStr(System::String^ %result) {
result = gcnew System::String("abc");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)