C .NET で System::String を std::string に変換する
C .NET で System::String を std::string に変換するstd::string は、Microsoft .NET Framework が提供するマーシャリング機能を使用して実現できます。
System::String を std::string に変換するには、msclr が提供する marshal_as メソッドを使用できます。 ::interop::marshal_context クラス。このメソッドは、マネージド文字列を入力として受け取り、対応する標準文字列を返します。
System::String を std::string に変換する方法の例を次に示します。
<code class="cpp">#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>
これコード スニペットは必要なヘッダーをインポートし、マネージド文字列を宣言し、marshal_as メソッドを使用してマネージド文字列を標準文字列に変換します。
msclr::interop 名前空間は最近のバージョンでのみ使用できることに注意することが重要です。 .NET のバージョン。古いバージョンを使用している場合は、代わりに msclr::interop::marshal_as_string メソッドを使用できます。
マネージ コードとアンマネージ コード間の他のさまざまな型の変換の詳細については、次の MSDN 記事を参照してください。 https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/interop/marshaling-data-with-platform-invoke
以上がC .NET で System::String を std::string に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。