什么是BitmapData.reserved?

时间:2011-06-20 21:23:55

标签: c# .net bitmap bitmapdata

BitmapData有一个名为Reserved的属性,该属性返回32位signed integer。微软的文档说不要使用这个属性。如果我们不应该使用它;那为什么呢?究竟是为了什么?

3 个答案:

答案 0 :(得分:4)

保留字段和属性可以有多种用途。一种相当普遍的用法是允许更复杂类型的BitmapData可能在将来需要存储某种类型的信息,而现有结构不提供这些信息。如果没有人使用保留字段用于任何事情,则将来的实现可以使用该字段来保存指向包含附加信息的另一个结构的指针或句柄。

答案 1 :(得分:3)

有趣的是,这是一个错误。它实际上是一个IntPtr,您可以从SDK中的本机声明GdiPlusImaging.h头文件中获知(对于VS2008,c:\ program files \ microsoft sdks \ windows \ v6.0a \ include目录)。该错误不是字节,因为GDI +创建了它的实例。

这使得该字段可能存储指针或句柄。我猜测内存映射文件对象句柄。将它存储在客户端状态对象中比在UnlockBits()函数中维护字典以找回它更便宜。不要乱用它。

答案 2 :(得分:1)

微软较老的API中有很多这样的产品,它们源于在未来的开发工作中将空间放入属性集中的时候。它们的作用与没有人应该推动的大红色按钮相同。也许有人会在将来想要一个按钮,然后,好吧,我们已经在这里找到了这个按钮!