Search code examples
stringc++-climanaged-c++

convert from std::string to String^


I have a function in C++ that have a value in std::string type and would like to convert it to String^.

void(String ^outValue)
{
   std::string str("Hello World");
   outValue = str;
}

Solution

  • Googling reveals marshal_as (untested):

    // marshal_as_test.cpp
    // compile with: /clr
    #include <stdlib.h>
    #include <string>
    #include <msclr\marshal_cppstd.h>
    
    using namespace System;
    using namespace msclr::interop;
    
    int main() {
       std::string message = "Test String to Marshal";
       String^ result;
       result = marshal_as<String^>( message );
       return 0;
    }
    

    Also see Overview of Marshaling.