我相信我正在做的事情是相当标准的。我通过在资源上调用 GetManifestResourceStream 来从嵌入式资源创建一些图像,并为其提供 .ico 文件的路径:
Bitmap bmp = new Bitmap(Assembly.GetEntryAssembly().GetManifestResourceStream("MeterView.Resources.unlocked.ico"));
然后使用该位图在我的表单上显示图像。这在 Windows 7 和 8 上一直运行良好,但现在当我尝试在 XP SP3 盒子上运行应用程序时,我在将流转换为位图的行上得到“无效参数”。我也尝试使用 Image.FromStream,但结果相同。
对资源的构建操作设置为嵌入式资源。任何人都知道如何解决这个问题?我也尝试重置流,这也没有什么区别。
在此先感谢您的任何建议。
图标文件来自这个应用程序的原始版本,它是用 Visual Basic 为 XP 编写的。我相信它们是在 VB 中手动生成的。我已经回收了所有这些图标,以便用 C# 重写这个应用程序。这是我第一次遇到问题。