ホームページ > バックエンド開発 > C++ > C .NET で System::String を std::string に変換するにはどうすればよいですか?

C .NET で System::String を std::string に変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-03 00:57:30
オリジナル
541 人が閲覧しました

How do I convert a System::String to a std::string in C   .NET?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート