Система. Рисование. Операция “Броска конструктора значка завершенное успешно” исключение

На машине Windows XP следующий код бросает Систему. 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 цветных версий, кажется, зафиксировали его.

5
задан jonnystoten 1 March 2010 в 22:35
поделиться

2 ответа

Судя по всему, проблема заключается в неправильной утилизации объектов. Трудно определить, где именно возникает проблема в вашем случае, но в качестве общего правила убедитесь, что вы применяете директиву using при работе с объектами, реализующими IDisposable.

Даже в приведенном вами примере попробуйте сделать что-то вроде:

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

Почитайте эту статью.

1
ответ дан 15 December 2019 в 06:24
поделиться

Существует ли файл icon1.ico в том же каталоге, что и исполняемый файл .NET? Вы не сказали прямо... вы читаете это как внешний файл иконки? возможно это

string sPath2Icon = Path.Combine(Environment.CurrentDirectory, "icon1.ico");
using (System.Drawing.Icon icon = new System.Drawing.Icon(sPath2Icon)){
    // Do what you have to do with icon!
}

Надеюсь это поможет, С наилучшими пожеланиями, Том.

1
ответ дан 15 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: