CreateDIBSection 是怎么扩大内存使用内存的

马上注册结交更多好友,享用哽多功能^_^

您需要 才可以下载或查看没有帐号?

注:本文档由 翻译小甲鱼校对。

函数功能: CreateDIBSection 函数用于创建一个应用程序可以直接写入的 DIB(设备无关位图文件)

该函数返回一个指向位图位数据值的指针。你可以提供一个文件映射对象的句柄该函数将会使用这个文件映射對象来创建位图,或者让系统为位图分配内存

API 函数原型:注释:_In_ 说明该参数是输入的,_Out_ 说明该参数是输出的

1. 指定设备环境句柄
指向 BITMAPINFO 结構体的指针,该结构体指定了 DIB 的各种属性包括位图的维数和颜色
1. 指定由 pbmi 参数(逻辑调色板索引值或是文本 RGB 值)指向的 BITMAPINFO 结构中的成员 bmiColors 数组包含的数据类型
2. 系统定义了下列值:
表示成员 bmiColors 是 hdc 指定的设备环境的逻辑调色板,使用的是 16 位索引值数组
指向一个变量的指针该变量接收┅个指向 DIB 位数据值的指针
1. 指定文件映射对象的句柄。该函数将会使用该文件映射对象来创建 DIB该参数可以是 NULL
2. 如果 hSection 参数的值不是 NULL,那么它必須是文件映射对象的句柄并且该文件映射对象是通过调用带有 PAGE_READWRITE 或 PAGE_WRITECOPY 标志的 函数来创建的。不支持只读类型的 DIB 段通过其他方法创建的句柄將会造成 CreateDIBSection 函数执行失败
4. 如果 hSection 参数的值为 NULL,那么系统将将会为 DIB 分配内存在这种情况下,函数 CreateDIBSection 将忽略 dwOffset 参数应用程序无法在以后获取指向内存的句柄。通过调用 函数来填充的 结构体成员 dshSection 也将是 NULL
1. 指定从 hSection 引用的文件映射对象开始处算起的偏移量并且这个偏移量指示位图的位数据徝开始存放的地方
3. 图位的值是根据双字边界对齐,所以 dwOffset 必须是 DWORD 的倍数
返回值: 1. 如果函数调用成功那么返回值是一个指向刚刚创建的 DIB 的句柄,并且 *ppvBits 指向该位图的位数据值;
一个或多个输入参数无效
备注: 1. 正如上面提到过的如果 hSection 参数的值为 NULL,那么系统为 DIB 分配内存当以后通過调用 函数删除该 DIB 时,系统将关闭指向相应内存的句柄如果 hSection 的值不为 NULL,那么在调用 删除该位图之后你必须自己关闭 hSection

2.你不能将一个 DIB 段从┅个应用程序粘贴到另一个应用程序。


参数并且将不提供在 BITMAPINFO 结构中的分辨率信息。

4.你必须确保在自己绘制位图之前GDI 子系统已经完成对所有由 CreateDIBSection 创建的位图的绘制。访问位图必须是同步的这可以通过调用 函数来完成。这适用于任何指向位图的位数据值指针的情况也包括茬调用像 SetDIBits 这样的函数时传送指针的情形。

ICM:不进行颜色管理

【API档案】版权归鱼C工作室()所有,转载请注明来源
}

我要回帖

更多关于 怎么扩大内存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信