阅读:2174回复:1
CE6, 三星2440, CreateDIBSection/LCD驱动的问题,请大家帮忙测试一下,看是否您们的系统也有同样的问题
这个问题并不是那么容易发现,表面上看起来好像没有问题一样. 如果您们对界面执行效率要求不高,也许根本就发现不了
环境三星2440, windows CE 6.0 800×480的分辨率. 我们有一个程序在windows CE 5.0下跑得很流畅,但同样的代码移植到三星2440的windows ce 6.0后发现界面很卡,而移植到A4方案上的机器上又不卡. 这个问题有些奇怪,之前也没有遇到过,我们怀疑过很多东西,甚至怀疑是不是windows CE 6.0系统本身的问题. 经过我们一点一点的分析,最后找到了问题的根源: 读写CreateDIBSection所关联的内存和读写new出来的内存效率差别很大. 代码示例: //引用CreateDIBSection返回的内存 BYTE *pBmpData = NULL; CreateDIBSection (NULL, pbmi, DIB_RGB_COLORS, (void**)&pBmpData, NULL, 0) ; //引用new返回的内存 BYTE* pNewData = new BYTE[800*480*sizeof(DWORD)]; 读写pBmpData和读写pNewData的效率差很多,大概读写pBmpData比读写pNewData慢三倍左右 我在csdn上发过一个贴子,可惜无人能解决,希望这边有更多的高手能帮下 大家帮帮忙,帮忙测试一下,看一下你们的2440的wince6.0是不是有同样的问题,谢谢!! 如果附件不能下载,下面的地址也可以下载 http://www.wceui.cn/blog/wp-content/uploads/test_createdibsection.zip |
|
|
沙发#
发布于:2010-03-03 18:49
thanks driverdevelop,让我这样新注册的也发贴,因为一直是搞应用的,不太熟悉这方面.
另不用在别的平台测试了,比如说A4,telechips,这些平台的ce6没有问题 只有三星的2440 + wince6.0才有问题, 三星2440 + CE5.0也没有这个问题 |
|