win32图片加载总大小有限制吗?

来源:百度知道 编辑:UC知道 时间:2024/04/27 19:31:35
我用sdk在学写一个游戏程序,为了加载图片,我在主线程中绘制LOAD界面,另创建了一个线程加载图片。图片格式是bmp的,最大的小于400K。但加载了大约四百张上下,后面的图片就加载不了了。把前面的图片加载屏蔽,后面的图片可以正常加载。调试后发现,后面的图片加载LoadImage函数返回NULL。难道sdk程序,图片加载的总大小有限制??还是要设置什么??
stone_dongdong
回去试了下,我把堆提交大小和堆保留大小改成1000000000,还是不行。问一下,这个单位是什么?我注意了下任务管理器,程序内存使用量始终在3.7M到3.9M之间,在LOAD界面加载图片时,内存最多一次增加到4.1M后就回落到3.7M到3.9M之间。晕,难道一个进程不能大于4M??
我的图片格式,路径都没问题,因为如果我先加载后面的图片,先前的图片就加载不进去。
恳求各位多多提提看法,帮我解决这个问题,现在项目没法往下写了。
-------------------------------------------------------------------------
GetLastError返回8

跟程序的堆大小有关。
打开工程属性-》连接器-》system。
堆提交大小,堆保留大小都改大。

内存是有限的,不建议将所有资源都一次性装入内存,否则系统使用硬盘空间来保存内存数据,那样频繁颠簸,运行速度会很慢了

那你是没有合理的释放内存

没大小限制,你的线程有问题吧?或者BMP图片格式有错?
可以把你的关键代码贴出一些么?

LoadImage返回NULL的时候调用一下GetLastError看看返回值是啥
===========================
返回8就是表示ERROR_NOT_ENOUGH_MEMORY;没有足够的内存~~~~可能是你的内存小或者是虚拟缓存不足导致系统申请内存时失败了。