Naw*_*waz 3 c# silverlight pinvoke winforms silverlight-4.0
我有一个用C++编写的DLL(Player.dll),内部使用Windows GDI.我有一个用Windows Forms编写的应用程序(基本上是一个视频播放器),内部调用API Player.dll来使用p/invoke技术在屏幕上呈现实际图形:
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
}
Run Code Online (Sandbox Code Playgroud)
它正在发挥作用.
但是现在,我想使用Silverlight 4.0编写相同的应用程序.如您所知,大多数Windows GDI都可以HWND在屏幕上渲染图形,这就是我传递playerHandle给ProxPlayer方法的原因,正如您自己可以看到的那样.Window Forms' UserControl定义了一个名为Handletype 的公共属性,IntPtr它等同于HWND,所以我将它传递给ProxyPlayer方法.它解决了我的问题.但Silverlight UserControl没有任何此类财产.
所以我的问题基本上是,我如何处理我的silverlight控件?因为没有它,我无法调用API Player.dll.但我要从中呼叫APS.我没有任何其他选项,因为DLL是实际的引擎,它确实解释了大量数据然后渲染它们.所以请建议我符合我的要求的解决方案!
注意:假设我的silverlight应用程序将始终在Microsoft Windows上运行.所以我没有问题对Windows GDI进行设置.
我有一个用C++编写的DLL(Player.dll),内部使用win32 API
你可以简单地忘记从Silverlight中进入这样的事情.Silverlight旨在运行跨浏览器/平台.想象一下你在MacOS下的代码.因此,请集中精力搜索可能从Silverlight运行的此代码的托管等效项,否则您只是在浪费时间.
| 归档时间: |
|
| 查看次数: |
1174 次 |
| 最近记录: |