使用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>
優點:
與手動記憶體管理相比,marshal_context 類別提供了額外的安全性和異常處理功能。 語法簡潔、簡單
以上是如何在 C .NET 中有效率地在 System::String 和 std::string 之間進行轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!