IntPtr 转 string

假设有 intPtr pBuffer

方法一:

直接使用Marshal.PtrToStringAnsi方法:

string ss = Marshal.PtrToStringAnsi(pBuffer);

但,如果pBuffer中有\0,此方法所获取的字符串会被截断。这种情况要用方法二。

方法二:

先转为byte数组,然后再转string:

byte[] cc = new byte[dwBufSize];
            Marshal.Copy(pBuffer, cc, 0, (int)dwBufSize);
            string ss = Encoding.ASCII.GetString(cc);//.Replace("dhav", "").Replace("DHAV", "");

搞定!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Ryan Miao

Java8-理解Collector

2734
来自专栏chenssy

你真的了解try{ return }finally{}中的return?

刚看到这个问题后。突然发现基础不够扎实,居然来第一个都答不出来。。。(不知道还有木有和我也一样也回答不出以上的问题的? 如果有请在评论里告诉我一声,让我知道,我...

575
来自专栏IMWeb前端团队

bash 的字符串和数组

回顾下自己接触过的编程语言,字符串和数组真是基础中的基础。也因此,在接触一门新的语言的时候,非常有必要去熟悉该语言的字符串和数组。 字符串 声明和赋值 name...

1768
来自专栏Java技术

Java多线程编程-(20)-借ThreadLocal出现OOM内存溢出问题再谈弱引用WeakReference

在上几篇的时候,已经简单的介绍了不正当的使用ThreadLocal造成OOM的原因,以及ThreadLocal的基本原理,下边我们首先回顾一下ThreadLoc...

722
来自专栏ml

HDUOJ----数塔

数塔 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Oth...

3067
来自专栏ppjun专栏

Android十八章:Java硬软弱虚引用,GC回收,内存碎片

又叫java虚拟机栈区,是每一个方法被执行的时候,创建出一个栈帧用来放的成员变量,操作链表,动态链接,方法出口。很多个栈帧又存储在栈区。

562
来自专栏nnngu

经典Java面试题收集

2、访问修饰符public,private,protected,以及不写(默认)时的区别?

3428
来自专栏赵俊的Java专栏

关于 Java finally 执行顺序 -- 修改版

1654
来自专栏C语言及其他语言

[程序源码]C语言实现简单计算器(VC6.0环境)

程序源码 ? 今天给大家带来一个C语言实现简单计算器(VC6.0环境)的程序源码,好了,咱们话不多说,直接上源码—— #include <stdio.h...

6297
来自专栏从流域到海域

堆和栈的区别

堆(heap)和栈(stack) 在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(...

1807

扫码关注云+社区