マーシャル クラスを使用した 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 中国語 Web サイトの他の関連記事を参照してください。