【如何在C#中向串行设备发送字节?】教程文章相关的互联网学习教程文章

使用C#,如何将二进制数据的字节数组转换为对数据建模的自定义类型对象?【代码】

场景:我通过HTTP接收了原始二进制数据,并将数据存储到字节数组中.我有描述二进制数据可以表示的各种字段的文档,但必须在运行时确定数据的实际含义.例如,如果表示错误发生的字节= 1,则下一个字节的含义会发生变化. 使用C#和.NET 4,我想创建一个或多个镜像文档中描述的字段的类,然后以某种方式使用二进制数据的字节数组初始化类.我希望该解决方案能够最大限度地减少代码重复,并且模块化和优雅. 我已经研究过创建Serializable类,但是...

在C#中的pictureBox中显示一个字节数组【代码】

我读了很多问题和答案,大多数建议:byte[] byteArray; //(contains image data) MemoryStream stream = new MemoryStream(byteArray); Bitmap image = new Bitmap(stream); pictureBox.Image = image;或更直接:pictureBox.Image = Image.FromStream(stream);我总是得到:“System.Drawing.dll中发生了’System.ArgumentException’类型的未处理异常 附加信息:参数无效.“ 关于流参数. 即使在以下情况下:byte[] byteArray = new ...

c# – 使用VirtualAlloc从字节数组运行程序?【代码】

我正在使用C#中的应用程序SFX / Protector,我希望受保护的程序集从字节数组执行而不是将其写入硬盘,以便更加难以进行逆向工程. 我有一个字节数组内的程序(有一个有效的入口点),我想执行它.我在这个网站上发现了一个类似的问题我怎么能这样做,我知道这可以使用下面的代码片段来完成,但有人可以指导我如何使用这个从字节数组运行程序? 从技术上讲,他下面的代码让我这样做:using System; using System.Collections.Generic; using S...

c# – 在编写跨平台位级代码时,字大小和字节顺序是否相互影响?【代码】

我只是看了this答案,它给出了以下示例代码,将int转换为字节数组:int intValue; byte[] intBytes = BitConverter.GetBytes(intValue); if (BitConverter.IsLittleEndian)Array.Reverse(intBytes); byte[] result = intBytes;我查了Endianness,发现字节的反转(或缺少字节)是一个单词的级别,它没有固定的长度. 上面的代码是否依赖于int是1个单词的大小?如果是这样,您将如何编写平台无关的代码? 作为旁注,我相当肯定我记得,在当天,查...

c#在8字节边界上对齐double【代码】

这不是一个重复的问题. 在现代的英特尔CPU中,使用x64构建的8字节边界上的双倍可以在不锁定的情况下进行读/写,因为它保证是原子的.有没有装饰器,或者怎么做我告诉C#编译器在8字节边界上对齐. 下面的[Align(8)]装饰器的实际代码是什么?public class AClass {[Align(8)]private static double d1;[Align(8)]private static double d2//and so on }解决方法:您可以使用[FieldOffset] attribute将字段放在任意偏移处.请注意MSDN文章中的...

c# – 以小端方式整数到字节数组(泛型函数)【代码】

我有这个方法来转换长到小端字节数组public static byte[] UnsignedIntegerToLEByteArray(ulong value) { // Value in bytes... in your system's endianness (let's say: little endian)byte[] bytes = BitConverter.GetBytes(value);// If it was big endian, reverse itif (!BitConverter.IsLittleEndian)Array.Reverse(bytes); return bytes; }我的目标是将它用于短路数据类型,如int,short等.请看这里:byte a = 0xAA; usho...

c# – 使用Naudio复制Wave文件 – 复制/附加最新可用字节【代码】

我有一个Active wave录制wave-file.wav发生在Source文件夹中.我需要使用新名称wave-file-copy.wav将此文件复制到Destination文件夹. 录制和复制应该并行进行.我已经实现了一个预定的作业,它将每10分钟运行一次,并将源文件复制到目标.private static void CopyWaveFile(string destinationFile, string sourceFile){using (var fs = File.Open(sourceFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)){using (var reade...

将java方法转换为C#:使用位移运算符将字节转换为整数【代码】

我试图将以下两种方法转换为c#而没有.net编译器向我抱怨.坦率地说,我只是不明白这两种方法是如何真正在幕后工作的.所以答案和解释在这里会很棒.public static int bytesToInt(byte b0, byte b1, byte b2, byte b3) {return (((int)b0 << 24) & 0xFF000000)| (((int)b1 << 16) & 0x00FF0000)| (((int)b2 << 8) & 0x0000FF00)| ((int)b3 & 0x000000FF); }public static byte[] charToBytes(char c) {byte[] result = new byte[2];res...

c# – 小于字节存储的选项?【代码】

我有很长的多维数组,其值包含0到16之间的值. 目前它们存储如下:byte[][,] example = new byte[1024][16,16];这相当于大约300kb. 是否有更有效的方法来存储这些数据?由于一个字节可以是0到255,因此这将非常适合16行值的单行,范围为0到15.解决方法:BitVector32允许您将8个4位值打包成32位整数.由于在数组的每个维度中基本上都有64位(如果我理解正确的话,16行16位4位值),您可能也对this class感兴趣.

c# – 检查图像文件大小(以字节为单位)【代码】

图像大小约为2.5MB 这段代码给了我正确的尺寸:var fileLength = new FileInfo(path).Length;这段代码给了我大约600KBImage image= Image.FromFile(path); byte[] imageByte = imageToByteArray(image); long legnth= imageByte.Length;public static byte[] imageToByteArray(System.Drawing.Image imageIn) {MemoryStream ms = new MemoryStream();imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Png);return ms.ToArray(...

c# – 如何将字节值转换为小数?【代码】

我正在尝试从文件中加载一些十进制值,但我无法找出正确的方法来获取原始值并将它们转换为小数. 我已经将文件读入一个字节数组,并且每个四个字节的块应该代表一个十进制值.为了帮助解决这个问题,我构建了一个表,列出了十进制值1到46如何表示为四个字节的块. 例如,数字1显示为0,0,128,63,数字2显示为0,0,0,64,依此类推,最多为46,即0,0,56,66.全表可用here. 还有另一系列数字,分为三个小数位,包括负数,即here. 我所说的唯一文件 它们首...

使用C#从IntPtr复制字节数组与Marshal.Copy不起作用【代码】

我正在使用一个非托管库,它可以生成灰度图像(大约100200像素,或多或少).图像包含在结构中,在C中如下所示:typedef struct abs_image {ABS_DWORD Width;ABS_DWORD Height;ABS_DWORD ColorCount;ABS_DWORD HorizontalDPI;ABS_DWORD VerticalDPI;ABS_BYTE ImageData[ABS_VARLEN]; } ABS_IMAGEtypedef unsigned int ABS_DWORD; typedef unsigned char ABS_BYTE;在这里我的C#包装器结构:[StructLayout(LayoutKind.Sequential, ...

如何在c#中将结构转换为字节数组【代码】

我在c#中有一个带有两个成员的结构:public int commandID; public string MsgData; 我需要将它们转换为单个字节数组,然后将其发送到将解包字节的C程序,它将获取第一个`sizeof(int)字节以获取commandID,然后其余的MsgData将被使用. 在c#中执行此操作的好方法是什么?解决方法:以下将返回一个常规字节数组,前四个表示命令ID,其余表示消息数据,ASCII编码和零终止.static byte[] GetCommandBytes(Command c) {var command = BitCon...

c# – 跨平台RESTful WCF方法,传递和返回字节数组【代码】

理论上这么简单,但我从来都不是WCF配置的wiz.我想要做的是:我有一个匹配此签名的WCF方法:[OperationContract] [WebInvoke(Method = "POST")] Stream PostPackets(Stream rawPackets);我真正关心的是从Android / iPhone / Blackberry /任何其他类型的设备获取字节数组到我的wcf服务,处理数组然后发送回不同的字节数组.对于我所关心的一切,它可能看起来像:[OperationContract] [WebInvoke(Method = "POST")] byte[] PostPackets(b...

C# MVC 文件字节流 保存【代码】

public string Upload(string Bytes){try{byte[] bytes = Convert.FromBase64String(Bytes);string times = DateTime.Now.ToString("yyyy-MM-dd");//建立存储的目录string ImageFileUrl = "Myfiles/" + times + "/";//判断目录是否存在if (!Directory.Exists(Server.MapPath(ImageFileUrl))){//如果不存在,创建Directory.CreateDirectory(Server.MapPath(ImageFileUrl));}string NewFilethumbName = Guid.NewGuid().ToString() +...