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 중국어 웹사이트의 기타 관련 기사를 참조하세요!