无法访问 MemoryStream 的内部缓冲区
无法访问 MemoryStream 的内部缓冲区
在处理剪贴板数据时, ms.GetBuffer() 语句出现异常,代码如下:
//检索当前位于系统剪贴板中的数据 IDataObject ido = Clipboard.GetDataObject(); //获取存储在 IDataObject 实例中的数据所关联的或可以转换为的所有格式的列表 String[] fmtList = ido.GetFormats(); //循环输出所有格式的列表 for (int i = 0; i < fmtList.GetLength(0); i++) { String fmt = fmtList[i]; tb_result.Text += fmt + "\r\n"; } String dibFmt = "DeviceIndependentBitmap"; if (fmtList.Contains(dibFmt) && ido.GetDataPresent(dibFmt)) { Object obj = ido.GetData(dibFmt); MemoryStream ms = (MemoryStream)obj; MemoryStream ms2 = new MemoryStream(); //构造固定文件头 byte[] bmpHeader = new byte[] { 0x42, 0x4D, 0x96, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00 }; //将文件头和文件数据写入内存流 ms2.Write(bmpHeader, 0, bmpHeader.Length); ms2.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
解决方法:
通过读取的方式获取:
MemoryStream ms = (MemoryStream)obj; byte[] buff = new byte[ms.Capacity]; if (ms.CanRead) { ms.Read(buff, 0, ms.Capacity); }
无法访问 MemoryStream 的内部缓冲区的更多相关文章
- wampserver2.5 apache2.4.9:forbidden,本机可以访问,局域网内部能访问。
wampserver2.5 apache2.4.9:forbidden,本机可以访问,局域网内部能访问. 因为做项目,多人分工,需要局域网内访问各自的项目. 然后安装了wampserver2.5,Ap ...
- GIS案例学习笔记-多边形内部缓冲区地理模型
GIS案例学习笔记-多边形内部缓冲区地理模型 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:对于多边形,建立内部缓冲区. 问题:ArcGIS缓冲工具不支持内部 ...
- Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException 拒绝访问 / 出现了内部错误 c# – 当使用X509Certificate2加载p12/pfx文件时出现
环境:iis/netcore 2.2 初始调用:X509Certificate2 certificate = new X509Certificate2(input.Path, CER_PASSWORD ...
- 关于window service2008系统iis部署访问证书,内部错误
近期因为在做微信支付系列,做到退款的时候需要通过把数据流通过证书post过去的时候,win7.win8.xp部署在iis都没问题.但是部署到服务器 2008的时候就出现了内部错误. 折腾许久,总算找到 ...
- Private表示该属性(方法)为只有本类内部可以访问(类内部可见)。
Public表示该属性(方法)公开: (想用private还要用set和get方法供其他方法调用,这样可以保证对属性的访问方式统一,并且便于维护访问权限以及属性数据合法性) 如果没有特殊情况,属性一定 ...
- Udp -内部缓冲区
1.每个socket关联了两个缓冲区,一个用于发送,一个用于接收. 2. 3.发送:(1)sendto()把数据放在sendbuf(缓冲区),通知os来取 (2)os在适当的时候过来取数据,并发到网络 ...
- QML访问C++类内部
0.前提 C++类需要继承QObject,且有Q_OBJECT宏[所以QT自己的那么多类按道理上QML都是可以直接访问的,nb] 1.QML访问C++中的非private槽函数 可直接调用 信号也是 ...
- 访问hbase的内部大致流程
hbase 访问表过程.Client(客户端)----->访问ZK(拿到meta表的region位置)----->访问meta 表的region------>拿到user表的regi ...
- Windows Store App 访问应用内部文件
访问应用程序内部的文件可以使用多种不同的方法,13.1节中已经介绍过相关的方法,除此之外,还可以使用文件的URI地址直接对文件进行检索,这种访问方式需要用到StorageFile类的静态方法GetFi ...
随机推荐
- jenkins 工作空间的目录
/usr/share/tomcat7/.jenkins/workspace/
- MarkChanges: Jmeter
1. 20180627 调整启动的内存set HEAP=-Xms1024m -Xmx1024m2. 20180627 调整输出格式为xml #jmeter.save.saveservice.outpu ...
- myEclipse 下配置多个Tomcat
1.进入perfomance 2. 进入server 右键点击configure server connector 3. 切换到 “Arguments” 面板,这里有 一个启动参数,就是修改一下路径 ...
- Python day17 模块介绍1(time,random)
module模块和包的介绍(略掉了) 常用模块 # time模块 import time print(time.time())#时间戳,在1970年开始到现在一共多少秒 print(time.gmti ...
- 字符集(编码)转换_Linux
ZC: 来自 我的项目 czgj 1.代码: #include <stdio.h> #include <iconv.h> #include <string.h> / ...
- c语言的左移和右移
转自:https://www.cnblogs.com/myblesh/articles/2431806.html 先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符.例 ...
- js实现滑动拼图验证码
js实现滑动拼图验证码,我这个样式是仿那些大网站做了, 学习用的,只用到前端. 小的个人网站感觉还可以用,大一点的别人用机器一下就破解了. 下面看图示: 样子大概是这样的. 源码在这 百度网盘: ...
- Android网络多线程断点续传下载
本示例介绍在Android平台下通过HTTP协议实现断点续传下载. 我们编写的是Andorid的HTTP协议多线程断点下载应用程序.直接使用单线程下载HTTP文件对我们来说是一件非常简单的事.那么,多 ...
- Python爬虫Urllib库的高级用法
Python爬虫Urllib库的高级用法 设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Head ...
- LeetCode--203--删除链表中的节点
问题描述: 删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3 ...