我的任务是编写一个(非托管c ++ win32)应用程序,通过网络向另一台计算机显示Windows CE 5.0的当前桌面。客户需要原始代码,并拒绝了我发现的一些VNC代码。
我有一些工作,但我有吞吐量瓶颈。我能找到获取屏幕像素的唯一方法是使用CreateDibSection创建一个DIB,并使用Bitblt将像素复制到缓冲区。在分析我的代码之后,我发现在Windows 7上,我的应用程序使用的CPU时间的60%是在Bitblt中花费的。在Windows CE上,它更像是80%。 如果我使用每像素32位,24位或16位似乎并不重要。
我的问题是: 有没有比CreateDibSection和BitBlt更好(更快)的方式来准备整个桌面像素?在我的应用程序中,它将在特定硬件上运行,因此我不需要设备独立性。
答案 0 :(得分:2)
请求原始代码是否受法律问题的影响? Microsoft在共享源许可证下提供了cerdisp应用程序的代码,这正是您所要求的。 至少你可以检查一下代码,了解它用来捕获屏幕图像的API。