在 C .NET 中将 System::String 转换为 std::string
System::String 和 std::string 之间的转换是在 C .NET 应用程序中集成托管和非托管代码时是必需的。要实现此转换,您可以利用 .NET Framework 类库提供的工具。一种有效的方法是使用最新版本的 .NET 中引入的 msclr::interop::marshal_context 类。它的工作原理如下:
<code class="cpp">#include "stdafx.h" #include <string> #include <msclr\marshal_cppstd.h> using namespace System; int main(array<System::String ^> ^args) { System::String^ managedString = "test"; msclr::interop::marshal_context context; std::string standardString = context.marshal_as<std::string>(managedString); return 0; }</code>
此方法利用编组上下文来促进转换。封送上下文管理托管和非托管内存空间之间的数据传输,确保类型安全和效率。它提供了一种简单且可维护的方法来执行这两种不同字符串类型之间的数据转换。
有关托管代码和非托管代码之间的数据转换的更多信息,请参阅 Microsoft Developer Network (MSDN) 文章 此处.
以上是如何在 C .NET 中将 System::String 转换为 std::string?的详细内容。更多信息请关注PHP中文网其他相关文章!