C# 如何将char * 指向的内如取出

问题描述

如:我有一个结构体,里面有一个char*指向数据的地址,并且有一个nDataLength的变量表示数据长度问题:我如何取出char*中的数据到一个Byte[]中?

解决方案

解决方案二:
char**相当于字符串数组。char*相当于字符串。你可以用string接受,并且用ToCharArray()装入数组。
解决方案三:
用string接收后的发现这个值一直都是"",所以改为了char*,然后想从指定的地址开始读长度的数据
解决方案四:
试试StringBuilder
解决方案五:
引用2楼yelangFeb的回复:

用string接收后的发现这个值一直都是"",所以改为了char*,然后想从指定的地址开始读长度的数据

不会吧,你好好看看你的C程序吧,是不是平栈了,用string接受应该是没有任何问题的,还有,你的char*里面有数据?直接用Marshal.Copy就行了吧
解决方案六:
1、c/c++中的char不同于c#中的char;2、办法一,循环赋值,根据数据长度循环将指针数据赋值到byte[]各元素;3、办法二,将char*强制转换为IntPtr,使用Marshal.Copy将IntPtr指向的数据拷贝到byte[];4、办法三,如果是从c编写的api中获取数据,并且api参数为一个指针,dll向指针写入数据,那么可以尝试直接使用固定后的byte[]作为参数传入api,或者获取byte[]的fixed指针作为参数传入api,使dll直接将数据写入byte[],省掉一次拷贝。5、结构体也好,结构体中有指针也好,将一个结构体作为一个数组也好,其实都是数据内存分布的表现形式,不用拘泥于一一对应,可以传送并在传送后转为需要的形式即可。
解决方案七:
试试StringBuilder是可以的
解决方案八:
char*pData;IntPtrdata=newIntPtr(pData);byte[]buff=newbyte[nDataLength];Marshal.Copy(data,buff,0,nDataLength);
解决方案九:
stringbuiler再不行IntPtr
解决方案十:
stringbuiler有用
解决方案十一:
用stringbuilder,传入前必须声明足够的长度。------------------当调用Win32的DLL时,如果接口方法的参数中有字符串的输出(LPSTR),就应该使用StringBuilder这个类型,此时,定义的StringBuilder变量就必须指定大小(为变量初始化内存空间),否则,当DLL内部对变量空间赋值的时候会失败,甚至出现意外,因为外部DLL并不支持StringBuilder这样的数据操作行为。
解决方案十二:
这个贴子真是好

时间: 2024-08-30 06:14:51

C# 如何将char * 指向的内如取出的相关文章

站长需要维护好外部指向站点内的内容及评论页面反向链接

摘要: 大家都知道,为了提高我们网站及电子商务平台的PR(PageRank),所有的站长都在努力的争取大量优质的反向链接.而大部分的反向链接都设定为指向网站的首页. 另一方面,国外的许 大家都知道,为了提高我们网站及电子商务平台的PR(PageRank),所有的站长都在努力的争取大量优质的反向链接.而大部分的反向链接都设定为指向网站的首页. 另一方面,国外的许多SEO专家也曾多次提到过,指向首页URL的反向链接固然重要,而如果外部的反链能够指向站点本身隐藏较深的内页URL,例如产品的详细介绍页面

在当前页面获得Iframe指向页面内对象

问题描述 当前页面<iframeid="countryFrame"src="country.jsp"height="300"width="200"frameborder="0"></iframe> Iframe指向的页面country.jsp<ul><li><inputtype="checkbox"name="checkbo

PInvoke 取出char *指向的内容

问题描述 C++函数原型intGetConversationPeer(TIMConversationHandleconv_handle,char*buf,uint32_t*len);C++调用方式:constuint32_tMAX_LEN=20;charbuf[MAX_LEN]={0};uint32_tlen=MAX_LEN;GetConversationPeer(conv,buf,&len);printf("theidentifieris%sn",buf);C++中能成功取出

外链建设阶段:前期指向首页 后期指向内页

  虽然外链的作用有所下降,但从2月份的百度绿萝算法中我们也不难看出外链对网站的影响还是比较大的,特别是针对相关性外链来讲,外链的作用更大.不过随着搜索引擎算法的不断改变与现今的SEO模式,外链建设过程也应该有所改变,而这个改变就是外链指向问题. 很多站长都认为外链建设只需要对首页进行指向就可以了,其实不然外链还应该对网站的内页进行分别指向,这样才能够满足网站首页与内页平衡发展的需要,不然一个网站只有首页有关键词排名,而内页的所有词没有排名,那么这样的网站其流量渠道肯定不会太广. 外链在前期指向

语言 指针类型-C语言中, 指针类型char*有什么意义。

问题描述 C语言中, 指针类型char*有什么意义. C语言中,void*与char*之类的指针类型相比,有什么特殊的用途? 解决方案 如果定义成 void * 时,就无法取指针中的数据,因为数据类型不明确. 想要取 void * 中的数据,需要转换成想要的类型指针,如 char * 或 int * . 一般 void * 做参数参数时使用,可以接受 char * 或 int * 等其它类型指针的传入.如果定义成 char * 等固定类型,则无法接收除 char * 外的其它类型指针. 解决方案

内页反向链接我该如何拯救你

大家都知道,为了提高我们网站及http://www.aliyun.com/zixun/aggregation/7871.html">电子商务平台的PR(PageRank),所有的站长都在努力的争取大量优质的反向链接.而大部分的反向链接都设定为指向网站的首页. 另一方面,国外的许多SEO专家也曾多次提到过,指向首页URL的反向链接固然重要,而如果外部的反链能够指向站点本身隐藏较深的内页URL,例如产品的详细介绍页面.促销活动的介绍页面.产品的评论反馈页面.电子商务平台购物社区的帖子和个人日志

深入理解String、StringBuffer、StringBuilder(转)

文章系转载,非原创,原地址:  http://www.cnblogs.com/dolphin0520/p/3778589.html 相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方,今天就来和大家一起学习一下String.StringBuilder和StringBuffer这几个类,分析它们的异同点以及了解各个类适用的场景.下面是本文的目录大纲: 一.你了解String类吗? 二.深入理解String.StringBuffer.StringBuilder

面试题

微软面试题:地球上有多少个满足这样条件的点 站在地球上的某一点,向南走一公里,然后向东走一公里,最后向北走一公里,回到了原点.地球上有多少个满足这样条件的点? 北极点满足这个条件. 距离南极点很近的一个圈上也满足这个条件.在这个圆圈上,向南走一公里,然后向东走一公里恰好绕南极点一圈,向北走一公里回到原点. 所以地球上总共有无数点满足这个条件. 谷歌面试题:判断一个自然数是否是某个数的平方 判断一个自然数是否是某个数的平方.当然不能使用开方运算. 假设待判断的数字是 N.   方法1: 遍历从1到

linux下的webserver BOA及CGIC库的使用指南(转帖)

我把网页挂载到nfs 下面的文件中(需要新建一个文件www ),不过这样很方便! 安装过程 ========================================================== 1 )在www.boa.org 下载boa-0.94.13.tar.gz 并解压 # tar -zxvf boa-0.94.13.tar.gz 2 )在src 目录下运行./configure 3 )生成Makefile 文件,修改 CC = arm-linux-gcc CPP = arm