将C ++代码移植到Silverlight

时间:2010-07-15 05:43:05

标签: c# .net c++ silverlight porting

我有C ++应用程序,它使用MFC开发UI,使用套接字(使用boost库)进行一些网络连接和一些图像处理。我想将此应用程序移动到Silvelight框架中(如果需要,我可以使用4.0),以便可以轻松地在Internet上使用它。在这里,我想将所有部分(UI +网络等)移动到C#中,但仅将图像处理代码保留在非托管C ++中。我还不知道.NET框架,但到目前为止我所阅读的内容表明,无法从一个非常简单的Web应用程序中调用非托管代码。我的理解是否正确?可以做些什么来实现我想做的事情?另外,如果有人对如何移植代码有一些建议?

2 个答案:

答案 0 :(得分:5)

Silverlight 4在受信任模式下运行时支持COM。

因此,从技术上讲,您可以让Silverlight使用COM调用您的c ++库。

我看到的主要问题是部署,我认为这不是一个好主意。

另外,请记住,Silverlight可以在Mac上运行,但COM只能在Windows上运行。

你可以做的是在服务器上进行图像处理,然后你 可能会遇到可扩展性问题。

在客户端和服务器之间传输大量数据可能会成为一个问题。

也许应该仔细评估UI响应。

关于移植代码,嗯,你肯定会看到一个完整的重写。

答案 1 :(得分:0)

如果可能,我建议使用WPF而不是Silverlight。使用WPF,您可以按原样重用C ++,因为桌面.NET /非托管互操作非常好(P / Invoke或CLI / C ++)。

否则,您无法将C ++移植到托管代码,这可能会很费力,导致代码效率低下。