VS2010中String^的几个常用类型转换

简介: 因为课程设计不得不用C++来写,而且底层函数字符串返回的都是unsigned char* 的,而VS2010中窗口控件中显示的字符串都是String^ ,所以整个过程基本上就是在各个类型之间进行转换,第一次用VS写程序,也是第一次接触.NET,刚开始真是被各个类型转换搞得头疼,下面总结一下用到的几个关于String^ 转换,希望以后用到的时候可以方便,也希望可以方便他人。
因为课程设计不得不用C++来写,而且底层函数字符串返回的都是unsigned char* 的,而VS2010中窗口控件中显示的字符串都是String^ ,所以整个过程基本上就是在各个类型之间进行转换,第一次用VS写程序,也是第一次接触.NET,刚开始真是被各个类型转换搞得头疼,下面总结一下用到的几个关于String^ 转换,希望以后用到的时候可以方便,也希望可以方便他人。

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


目录
相关文章
|
11月前
|
JSON NoSQL Redis
关于Redis-存Long取Integer类型转换错误的问题;String对象被转义的问题
关于Redis-存Long取Integer类型转换错误的问题;String对象被转义的问题
389 0
|
12月前
|
算法
【报错:string类型转换int】java.lang.NumberFormatException: For input string:
【报错:string类型转换int】java.lang.NumberFormatException: For input string:
|
Java Linux Go
知识分享之Golang——常用的类型转换int、string、float互相转换
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
142 0
知识分享之Golang——常用的类型转换int、string、float互相转换
|
缓存 Java 存储
JAVA学习笔记--类型转换(父类子类 Object 基本类型 String) 拆装箱 包装类
最近一段时间忙着学习JAVA,本来net学的也不怎么好,趁着这个机会转下方向学习JAVA。 不过.NET core的开源还是有点搞头的,微软了解一下。
1407 0
|
JavaScript 前端开发
在javascript里 string 和 int 类型转换
string 转换为int 类型 (1)tostring()方法 var   x=10    a   =   x.toString()    //输出为string类型 alert(typeof(a)); (2)自动隐式转换 var   x=10...
954 0
|
Java API
JAVA中int、String的类型转换
int -> String int i=12345; String s=""; 第一种方法:s=i+""; 第二种方法:s=String.valueOf(i); 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? String -> int s="12345"; int i; 第一种方法:i=Integer.
737 0
|
Java Windows
JAVA int String 的类型转换
nt -> String int i=12345; String s=""; 第一种方法:s=i+""; 第二种方法:s=String.valueOf(i); 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? ...
713 0
|
14天前
|
Java API 索引
Java基础—笔记—String篇
本文介绍了Java中的`String`类、包的管理和API文档的使用。包用于分类管理Java程序,同包下类无需导包,不同包需导入。使用API时,可按类名搜索、查看包、介绍、构造器和方法。方法命名能暗示其功能,注意参数和返回值。`String`创建有两种方式:双引号创建(常量池,共享)和构造器`new`(每次新建对象)。此外,列举了`String`的常用方法,如`length()`、`charAt()`、`equals()`、`substring()`等。
15 0
|
29天前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
25 0