使用 Marshal 类在 System::String 和 std::string 之间进行转换
在 C .NET 中的 System::String 之间进行转换C 中的 std::string 是一项常见任务。 MS 提供的 marshal_context 类提供了一种干净高效的方法来实现此目的。
语法:
<code class="CPP">msclr::interop::marshal_context context; std::string standardString = context.marshal_as<std::string>(managedString);</code>
示例:
<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>
优点:
替代转换
答案引用的MSDN文章还提供了其他转换方法,例如:
以上是如何在 C .NET 中高效地在 System::String 和 std::string 之间进行转换?的详细内容。更多信息请关注PHP中文网其他相关文章!