草庐IT

GL_UNSIGNED_BYTE

全部标签

c# - P/调用,c# : unsigned char losing a byte

我正在为软件的SDK编写一个dll文件,我正在尝试调用一个函数来获取有关软件主机的信息。函数想要的结构中有两个无符号字符变量(HostMachineAddress,HostProgramVersion),当我尝试从c#调用它时,我似乎“松开了”最后一个字节...如果我更改c#中的SizeConst结构低于5我确实得到了丢失的字节,但是它导致另一个变量丢失数据。有人可以帮我找到解决这个问题的方法吗?还尝试使用类而不是结构导致system.stackoverflow错误C#结构[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi)

c# - byte[] array to struct with variable length 数组

我正在从套接字接收一个字节数组,字节的结构只是一个固定宽度字符串的大字符数组。在某些情况下,最后一个字段是动态的(而不是固定长度),我正在尝试将字节编码为结构。我读过可变长度的char数组需要是IntPtr,但我还没有弄清楚如何用剩余的字节对其进行编码。我还在一些文章中读到我可能需要第二个结构,但仍然无法弄清楚如何正确地编码它。这是一个这样的site在结构中处理可变长度字符数组的正确方法是什么?结构:[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi)]publicstructHeader{#regionprivatemem

c# - 如何将 "byte[]"的一部分复制到另一个数组?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:HowtocopypartofanarraytoanotherarrayinC#c#-如何将“byte[]”变量的一部分复制到另一个数组?

c# - 在 C# 中从 short 转换为 byte 时会发生什么?

我有以下代码:shortmyShort=23948;bytemyByte=(byte)myShort;现在我没想到myByte包含值23948。我猜它会包含255(我相信一个字节的最大值)。然而,它包含140,这让我想知道为什么;幕后究竟发生了什么?请注意,我不是在找人来解决23948不能放入一个字节的问题,我只是想知道底层实现 最佳答案 Short是一种2字节类型,一个字节就是一个字节。当您从两个字节转换为一个字节时,您将迫使系统进行调整,并且原始字节之一(最重要的字节)被丢弃并且数据丢失。23948(二进制:0101110110

c# - 如何将位图转换为图像<Bgr, Byte>

我正在使用OpenCV库进行图像处理。我想转换一个System.Drawing.Bitmap到Image.我该怎么做? 最佳答案 Image构造函数有一个Bitmap重载(假设您正在使用EmguCV包装器,因为您已经将它标记为.NET).ImagemyImage=newImage(myBitmap); 关于c#-如何将位图转换为图像,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

c# - 在运行时将 byte[] 加载到图像中

我有一个byte[],它由一个Image表示。我正在通过WebClient下载此Image。当WebClient下载图片并且我使用它的URL引用它时,我得到一个byte[]。我的问题是,如何将byte[]加载到WPF中的Image元素中?谢谢。注意:这是对我在这里提出的问题的补充:GenerateImageatRuntime.我似乎无法让这种方法发挥作用,所以我正在尝试一种不同的方法。 最佳答案 从MemoryStream创建一个BitmapImage,如下所示:MemoryStreambyteStream=newMemoryStr

c# - 如何将字节数组(即 byte[])保存到 Azure Blob 存储?

我知道如何保存流,但我想获取该流并创建缩略图和其他大小的图像,但我不知道如何将字节[]保存到AzureBlob存储。这就是我现在正在做的来保存流://Retrievereferencetoablobnamed"myblob".CloudBlockBlob_blockBlob=container.GetBlockBlobReference("SampleImage.jpg");//uploadfromStreamobjectduringfileuploadblockBlob.UploadFromStream(stream);//Butwhataboutpushingabyte[]arra

c# - 将 BYTE 数组转换为 INT

我有这种代码staticvoidMain(string[]args){byte[]array=newbyte[2]{0x00,0x1f};Console.WriteLine(BitConverter.ToInt32(array,0));}但是它不起作用。它抛出异常:Destinationarrayisnotlongenoughtocopyalltheitemsinthecollection.Checkarrayindexandlength.怎么了? 最佳答案 顾名思义,一个Int32是32位,即4个字节,所以如果要将字节数组转换为I

c# - 在 C 和 C# 中将 int 提升为 unsigned int

看看这段C代码:intmain(){unsignedinty=10;intx=-2;if(x>y)printf("xisgreater");elseprintf("yisgreater");return0;}/*Output:xisgreater.*/我明白为什么输出的x更大,因为当计算机比较两者时,x被提升为无符号整数类型。当x提升为无符号整数时,-2变为65534,这肯定大于10。但为什么在C#中,等效代码会给出相反的结果?publicstaticvoidMain(String[]args){uinty=10;intx=-2;if(x>y){Console.WriteLine("x

c# - MemoryStream:为什么在readByte之后转换为byte

在thisexamplefromMS,您会注意到,在我们从内存流中读取一个字节后,它会进入一个int,然后必须将其转换为byte。令我感到奇怪的是,像.ReadByte()这样的函数首先不返回一个字节。MS这样做有什么原因吗?//Readtheremainingbytes,bytebybyte.while(count我突然想到。也许这归结为使用。也许ReadByte()通常用于检索较短的长度,随后的长度会在通过长度变化的检索中消耗intlength=ms.ReadByte();ms.Read(buf,0,lenth);即你可以使用没有Actor的长度。这是一个足够好的理由吗?