gpt4 book ai didi

c# - Silverlight 用户控件的句柄

转载 作者:行者123 更新时间:2023-11-30 14:18:17 25 4
gpt4 key购买 nike

我有一个用 C++ 编写的内部使用 Windows GDI 的 DLL (Player.dll) .我有一个用 Windows 窗体编写的应用程序(基本上是一个视频播放器),它使用 p/invoke 从 Player.dll 内部调用 API 以在屏幕上呈现实际图形技术:

public class ProxyPlayer
{
[DllImport("Player.dll", CharSet=CharSet.Unicode, EntryPoint="PlayVideo")]
public static extern void Play(int playerHandle, out TWResult result);

[DllImport("Player.dll", CharSet=CharSet.Unicode, EntryPoint="PauseVideo")]
public static extern void Pause(int playerHandle);

//other methods
}

它正在工作。

但现在,我想使用 Silverlight 4.0 编写相同的应用程序。众所周知Windows GDIHWND 一起在屏幕上渲染图形,这就是为什么我将 playerHandle 传递给 ProxPlayer 方法的原因,正如您在上面看到的那样。 Window Forms 的 UserControl 定义了一个名为 Handle 的公共(public)属性,类型为 IntPtr,相当于 HWND,所以我通过ProxyPlayer 方法。它解决了我的问题。但是 Silverlight 的 UserControl 没有任何这样的属性。

所以我的问题基本上是,我将如何处理我的 silverlight 控件?因为没有它,我无法从 Player.dll 调用 API。但我必须从中调用 APS。我没有任何其他选择,因为 DLL 是真正的引擎,它确实执行与解释大量数据然后呈现它们相关的所有事情。所以请给我建议符合我要求的解决方案!

注意:假设我的 silverlight 应用程序将始终在 Microsoft Windows 上运行。所以我在调用 Windows GDI 时没有问题。

最佳答案

I've a DLL (Player.dll) written in C++ that internally uses win32 API

您可以简单地忘记从 Silverlight 中调用 PInvoking 到类似的东西。 Silverlight 旨在跨浏览器/平台运行。想象一下您在 MacOS 下的代码。因此,请集中精力搜索可从 Silverlight 运行的此代码的托管等效项,否则您只是在浪费时间。

关于c# - Silverlight 用户控件的句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4744522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com