Dot-Net

C++ .NET 將 System::String 轉換為 std::string

  • August 19, 2009

如何在 C++ .NET 中將 System::String 轉換為 std::string?

如果您使用的是最新版本的 .net,則語法更簡潔

#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;
}

這也可以讓您在面對異常時進行更好的清理。

有一篇關於其他各種轉換的msdn 文章

引用自:https://stackoverflow.com/questions/1300718