我正在尝试从 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/