1、char* 转换为String^
char* c = "123";
String^ str = gcnew String(c);
2、String^ 转换为 char*
首先使用命名空间 using namespace System::Runtime::InteropServices;
String^ str="123";
char* c =(char*)(void*)Marshal::StringToHGlobalAnsi(str);
3、String^ 转换为double
这里使用Convert 类型,它是System下面的一个类型,刚开使在使用的时候以为可以跟Java里面一样,直接通过类名调用静态函数,但一直出错,后来先定义一个对象后,才能调用到方法,如果可以像Java那样调用,希望大家不吝赐教啊,
Convert^ con;
String^ str = "123";
double d = con->ToDouble(str);
补充的是,Convert里面还有很多类型的转换方法,非常丰富。
4、double 转到String^ 也是使用Convert 类,在此不再赘述。
最后想说的是,关于^符号,本人一直不太懂,但根据报错信息,每次定义对象的时候都使用^符号,并使用gcnew,就不报错了,个人的理解可能是自动回收内存的一个机制。
5、unsigned char* 转String^ 类型
private: String^ BYTEtoString(unsigned char* BYTEContent) { string str = ""; stringstream ss; //需要添加 #include <sstream> for(int i = 0;i < sizeof(BYTEContent)/sizeof(BYTEContent[0]);i++) //遍历 { if(int(BYTEContent[i]) < 16) //若该值小于16,则在前面补0 { ss << "0"; } ss<<hex<< int(BYTEContent[i]); //转换为16进制后添加到字符串流末尾 } str = ss.str(); String^ s =gcnew String(str.c_str()); return s; }