将标准C ++ int转换为String ^

时间:2018-03-30 12:49:33

标签: c++-cli

我想在Visual C ++ / CLI环境中将std :: int转换为System :: String ^。我知道我们可以使用Microsoft提供的包含模板函数marshal_as

的库
#include <msclr\marshal.h>

using namespace msclr::interop;

int count = 1;
String^ Apple;
Apple = marshal_as<String^>(count);

我收到此错误时无法运行此声明

'msclr::interop::error_reporting_helper<_To_Type,_From_Type,false>::marshal_as':
 This conversion is not supported by the library or the header file needed for 
this conversion is not included.

2 个答案:

答案 0 :(得分:1)

int count = 100; 
System::String^ s = count.ToString();

答案 1 :(得分:0)

marshal_as用于在本机类型及其托管等效项之间进行转换。它不是一般的“将任何东西转换为任何东西”工具。要将整数转换为.NET String,您可以使用std::to_string转换为C ++字符串,然后使用marshal_as转换为String,或者使用Int.ToString如果你想进行.NET方面的转换。