在C .NET 中將System::String 轉換為std::string
System::String 和std::string 之間的轉換是在C .NET 應用程式中整合託管和非託管程式碼時是必需的。若要實作此轉換,您可以利用 .NET Framework 類別庫提供的工具。一個有效的方法是使用最新版本的 .NET 中引入的 msclr::interop::marshal_context 類別。它的運作原理如下:
<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>
此方法利用編組上下文來促進轉換。封送上下文管理託管和非託管記憶體空間之間的資料傳輸,確保類型安全和效率。它提供了一種簡單且可維護的方法來執行這兩種不同字串類型之間的資料轉換。
有關託管程式碼和非託管程式碼之間的資料轉換的更多信息,請參閱 Microsoft Developer Network (MSDN) 文章 此處.
以上是如何在 C .NET 中將 System::String 轉換為 std::string?的詳細內容。更多資訊請關注PHP中文網其他相關文章!