Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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;
}
like image 215
Moti Avatar asked Dec 05 '12 07:12

Moti


2 Answers

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.

like image 73
Mark Tolonen Avatar answered Oct 21 '22 20:10

Mark Tolonen


From MSDN:

#include <string>
#include <iostream>
using namespace System;
using namespace std;

int main() {
   string str = "test";
   String^ newSystemString = gcnew String(str.c_str());
}

http://msdn.microsoft.com/en-us/library/ms235219.aspx

like image 33
Teodor Ciuraru Avatar answered Oct 21 '22 22:10

Teodor Ciuraru