1

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

请问,有人对如何解决这个问题有任何建议吗?任何事情都会得到重视!

谢谢!

4

1 回答 1

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 对象,在客户端计算机上安装和注册它,并使用Silverlight 中的 COM 支持来加载 C++/CLR DLL。
于 2012-04-12T01:57:04.610 回答