Silverlight可以与C ++静态库链接吗?

时间:2010-03-24 23:32:59

标签: silverlight cross-platform shared-libraries

我正在研究开始一个新项目。这个项目将分为两个部分:一个轻型客户端(可能是控制台)和一个使用silverlight的重型客户端。轻客户端必须是跨平台的。

但是,它们都使用相同的Core(顺便说一下,核心需要使用套接字)。

我想使用C ++构建轻量级客户端,但鉴于核心对于两个应用程序都是通用的,如果它们可能是相同的代码,我们将非常感激。

所以问题很简单:Silverlight可以与C ++静态库合并吗?如果可能,那么跨平台问题(月光下)呢?

如果不可能的话。在跨平台时,我可以使用哪种语言来处理silverlight?由于性能,编译语言会更好!

感谢您的专业知识:)

2 个答案:

答案 0 :(得分:3)

没有

不仅Silverlight只管理代码,使用标准CRL,而是使用称为CoreCLR的特殊CRL。 Silverlight程序集是真正的 .Net程序集,但是针对核心.Net库的有限子集进行编译。在CoreCLR中运行时(在浏览器中)出于安全原因,Silverlight程序集受到多种限制。你甚至不能用C ++编写Silverlight程序集,并且没有Silverlight代码可以被标记为不安全(我承认可能有一种解决这个限制的方法)。

此答案仅适用于Silverlight 2& 3,虽然我没有很多使用Silverlight 4的经验,但我不知道任何可以通过SL4跨浏览器提供此功能的东西。

如果您依靠Moonlight for Linux兼容性,我认为您会感到失望。我的团队选择了Silverlight,因为它运行在Firefox,IE,很快就可以在Windows上运行Chrome和非正式的Opera,在Mac上运行Firefox和Safari。

编辑:注意这篇文章的作者日期,这是前SL4。

答案 1 :(得分:2)

没有。 Silverlight仅是托管代码。

但是,当从浏览器中提升权限运行时,Silverlight 4将支持COM互操作。这不适用于其他平台 - 它是仅限Windows的功能。 Justin Angel在他的blog post regarding the (not quite) cross-platform of Silverlight中提到了这一点。

相关问题