gpt4 book ai didi

c# - System.Drawing.Icon 构造函数抛出 "Operation completed successfully"异常

转载 作者:太空狗 更新时间:2023-10-29 23:35:22 27 4
gpt4 key购买 nike

在 Windows XP 机器上,以下代码抛出 System.ComponentModel.Win32Exception 并显示消息“操作成功完成”

System.Drawing.Icon icon = new System.Drawing.Icon("icon.ico");

我可以阻止程序崩溃

try
{
System.Drawing.Icon icon = new System.Drawing.Icon("icon.ico");
}
catch(System.ComponentModel.Win32Exception ex)
{
if (ex.NativeErrorCode != 0)
{
throw;
}
}

但是当然没有设置图标。

完整的堆栈跟踪是

at System.Drawing.Icon.Initialize(Int32 width, Int32 height)
at System.Drawing.Icon..ctor(String fileName, Int32 width, Int32 height)
at System.Drawing.Icon..ctor(String fileName)
at hermes.Window1..ctor() in D:\\projects\\hermesclient\\hermesWPF\\hermes\\Window1.xaml.cs:line 50"

第 50 行是我发布的原始行。

这是一个 WPF 应用程序,代码在 Windows 7 机器上运行良好。

编辑:原来图标在 Windows XP 中根本不起作用,添加 256 色版本似乎已修复它。

最佳答案

从表面上看,问题似乎是没有正确处理对象的问题。在您的案例中很难准确指出问题发生的位置,但作为一般经验法则,请确保在处理实现 IDisposable 的对象时实现 using 指令。

即使在您提供的示例中,也请尝试执行以下操作:

using (var icon = new System.Drawing.Icon("icon.ico"))
{
// use icon
}
// icon is then disposed.

阅读此 article .

关于c# - System.Drawing.Icon 构造函数抛出 "Operation completed successfully"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2356580/

27 4 0