c# - 如何使用 C# 将 Cursor 转换为可以保存到 .resx 文件中的图像?

标签 c# dll cursor resx

我正在尝试从 Visual Basic 编译的 dll 文件中读取光标图像。到目前为止,该程序可以很好地拉出字符串和位图,但它不喜欢拉出游标。提取资源后,程序将它们保存在 .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 似乎也不适用于图像。

因此,如果有人对如何解决这个问题有任何想法,请告诉我。谢谢!

最佳答案

LoadCursor 的文档说它已被 LoadImage 取代。你试过用那个吗?

关于c# - 如何使用 C# 将 Cursor 转换为可以保存到 .resx 文件中的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5666910/

相关文章:

C# 帮助 - FileSystemWatcher 类

c# - ASP.NET WebForms C# 如果 url 与超链接添加类相同

c# - 图像浏览器在 Razor View 的 CkEditor 中不工作

c - 在 C 到 VB 控件中渲染图形

python - 如何避免在一次执行调用中出现多个查询

c# - 如何从 Asp.Net Core 的 ConfigureServices 方法内部访问添加到 DI 容器的服务

c++ - 解决 C++ 中 Dll 中模板的问题?

c++ - 在同一解决方案中的项目之间传递 CString

java - 确定多行文本组件中文本的 XY 位置

android - 在访问之前确保 Cursor 被正确初始化