【发布时间】:2009-10-27 19:28:05
【问题描述】:
我编写了一个在 WinCE 屏幕上显示图标的小项目。图标是 28x28 16 色 BMP 文件,放在主资源文件 (Resources.resx) 中(主 Form 的 resx 也有同样的问题,GIF 文件也不行)。
我第一次尝试从资源中获取任何位图时,从 System.Drawing.Bitmap._InitFromMemoryStream 调用的 Microsoft.AGL.Common.MISC.HandleAr 引发了带有消息“Exception”的 Exception 类型的异常.
我有两个 WinCE 设备。此错误仅发生在其中一个上;另一个工作正常。除了这个问题,该应用程序适用于两种设备。该应用程序还使用了一些涉及 DIB 的本机代码,并且运行良好。有什么想法吗?
更新:如果我尝试从文件加载位图,也会出现同样的错误。我还尝试了 1 位(黑白)、8 位和 24 位位图,但均无济于事(WinCE 帧缓冲区最常见的是 16 位,但我没有可以生成 16 位位图的图像编辑器。)
【问题讨论】:
-
这些是什么设备?你能张贴位图的链接吗?
-
这两台设备是否运行相同的操作系统版本?还是它们是两种不同类型的设备? .NET CF 依赖于操作系统提供的图像编解码器。因此,可能是特定的操作系统映像可能不支持文档中详述的每种文件格式。
-
你说你可以创建一个DIB。 DDB怎么样?故障设备的显示驱动程序是否支持 16 色调色板?
-
是否有任何关于 .NET CF 如何使用图像提供的“编解码器”的文档?
-
我尝试在 Compact Framework 中简单地创建一个 DDB 和 DIB 并且两者都有效。请参阅blog.opennetcf.com/ctacke/… - (w,h) 构造函数应该创建一个 DDB,(w,h,pixelformat) 构造函数应该创建一个 DIB。
标签: .net exception compact-framework resources bitmap