在c#silverlight中调用c ++ clr dll

时间:2012-04-12 00:29:43

标签: c# .net silverlight interop clr

我们有一个c ++ clr应用程序,我们已经编译成一个DLL。我们通过c ++代码中的托管公共引用类公开了几种方法。我们实际上能够让我们的本机c#应用程序加载此dll并通过引用传递system :: drawing :: bitmap。我们需要做的就是添加对dll的引用,并且由于隐式pinvoke而暴露了所有方法。 但是,只要我们尝试在我们的silverlight应用程序中加载dll,事情就会爆炸。显然,使用的c ++ clr .net库与silverlight的库不兼容。 我们已经尝试了很多东西,但是无法通过银色来调用我们的dll。

请问,有人对如何解决这个问题有任何建议吗?任何东西都会得到证实!

谢谢!

1 个答案:

答案 0 :(得分:2)

我有三个主要选择:

  1. 在Silverlight DLL中重写C ++ / CLR DLL中的逻辑。从Silverlight 5开始,您可以使用P/Invoke
  2. 创建一个调用C ++ / CLR DLL的Web服务。 Silverlight应用程序可以调用Web服务,Web服务将能够使用C ++ / CLR DLL。
  3. 将您的C ++ / CLR DLL公开为COM对象,在客户端计算机上安装并注册它,并使用COM support in Silverligh t加载C ++ / CLR DLL。