【问题标题】:StretchDIBits failed, sometimes it draw nothing,StretchDIBits 失败,有时它什么也没画,
【发布时间】:2009-09-18 01:15:29
【问题描述】:

我正在使用 gdi c++, 如果我绘制 7000*5000 等大图像,StretchDIBits 函数有时会失败。 它什么也没画。 GetLastError() 表示没有足够的系统资源。 任何人都可以解释为什么 StretchDIBits 需要资源,即使 DC 准备成功。

【问题讨论】:

    标签: c++ gdi stretchdibits


    【解决方案1】:

    可能是 StretchDIBits 将源图像扩展为与目标位图相同尺寸的临时位图,然后将临时位图复制到目标中作为最后一步。因此,即使您有足够的内存在 StretchDIBits 调用之前创建目标位图 (140 MB),您的系统也没有额外的 140 MB 分配给临时位图。

    【讨论】:

    • 我不同意。他的机器不可能没有 280MB 的可用内存。即使没有那么多空闲 RAM,也肯定有 280MB 的页面文件空间。他会收到有关“系统虚拟内存不足”的错误消息。
    • 这也可能意味着他没有那么多可用的连续地址范围。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    相关资源
    最近更新 更多