Как преобразовать курсор в изображение, которое можно сохранить в файл .resx с помощью C #? - PullRequest
3 голосов
/ 14 апреля 2011

Я пытаюсь прочитать изображение курсора из файла dll, соответствующего Visual Basic.Пока что программа может просто извлекать строки и растровые изображения, но она не любит вытягивать курсоры.После извлечения ресурсов программа сохраняет их в файле .resx вместо dll.У меня возникли некоторые проблемы, потому что я не думаю, что файлы .resx поддерживают курсоры напрямую.

Вот что у меня есть:

    [DllImport("user32.dll")]
    static extern IntPtr LoadCursor(IntPtr hInstance, uint lpCursorName);

    [DllImport("kernel32.dll")]
    public static extern IntPtr LoadLibrary(string dllToLoad);

    var Lib = LoadLibrary("myLib.dll");

            IntPtr cRes = LoadCursor(Lib,101);
            Cursor c = new Cursor(cRes);
            writer.AddResource("cursor_" + 101, c);

Это прекрасно работает с другими файлами, нокогда я пытаюсь сделать это с курсорами, он выдает «InvalidOperationException» и говорит, что формат изображения недопустим.Он фактически загружает дескриптор в Cursor без проблем, но выдает исключение, когда я пытаюсь сохранить его как .resx.Вместо этого я попытался загрузить курсор в виде растрового изображения, но оно просто загружает пустое изображение.CursorConverter также не работает с изображениями.

Так что, если у кого-то есть идеи, как это решить, пожалуйста, дайте мне знать.Спасибо!

1 Ответ

0 голосов
/ 14 апреля 2011

В документации для LoadCursor говорится, что он был заменен LoadImage.Вы пытались использовать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...