我正在尝试从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似乎也不适用于图像。
因此,如果有人对如何解决这个问题有任何想法,请告诉我。谢谢!
答案 0 :(得分:0)
LoadCursor的文档说它已被LoadImage取代。你尝试过使用它吗?