使用Windows LockResource访问二进制资源数据

时间:2010-03-11 11:48:39

标签: windows resources

首先,我的具体问题:在我尝试访问游标原始数据时,我对LockResource的调用成功,但是SizeOfResource调用告诉我数据只有20个字节,这太小了......

我真正想做的是:我正在探索将游标从混合代​​码服务器应用程序远程移植到CLR客户端应用程序的可能性。我的(很可能是天真的)想法是使用LockResource来访问资源的二进制数据(嵌入在本机dll中),将这些数据传递给客户端并以与从本地检索的资源数据相同的方式处理它。使用Assembly.GetManifestResourceStream进行汇编以获取资源流,并使用Resources.ResourceSet迭代资源。我希望,因为.NET无疑会将相同的底层系统调用作为本机代码,这是有道理的。另一方面......

有没有人有任何意见或更好的想法? (当然,在客户端上提供兼容的资源包以及远程某些游标id当然会更容易,但我们似乎要求在运行时动态添加游标。)

感激地收到任何评论!

1 个答案:

答案 0 :(得分:0)

最后,我使用Win32调用来获取光标位图,将其序列化并将热点位置序列化到客户端,然后再次使用Win32 API重新创建光标。一旦你有一个HCURSOR客户端,你可以根据需要构建一个.NET WinForms游标(但是这样的对象不能使用简单的.NET序列化 - 否则这将是一个更容易的远程方法! )。