2010-04-27 75 views
0

有没有人试过托管C++编码?我有几个问题:托管C++前景

  1. 与C#相比,语言的生产力如何?
  2. 对可编写项目的类型是否有任何限制?我们可以在托管的C++中编写Web应用程序吗?
  3. 是否可以在一个应用程序中混合托管和非托管C++代码?
  4. MFC在托管C++中仍然有效吗?考虑迁移VC++应用程序时,它会是最好的选择吗?
+2

正如澄清:“托管C++”(真正称为“C++托管扩展”)是旧的skool并已弃用。 C++托管代码的现代扩展称为“C++/CLI”。 – 2010-04-27 04:16:17

+0

我假设你们所有人的意思是“C++/CLI”,而不是“托管C++”,对吧?受管理的C++非常难以使用。 C++/CLI使它好得多。 (尽管有些答案指出,仍然不完美。) – sblom 2010-04-27 04:17:30

+4

*使用C++/CLI(这是目前的名称是“Managed C++”)的唯一原因是在C#之间提供一个桥梁。 NET和本机C++代码。在我看来,没有很好的理由*你想用C++/CLI来做其他任何事情。 – 2010-04-27 04:19:09

回答

1

我发现C#的生产力要高得多。托管C++的真正魔力是,你可以混合托管和非托管代码 - 即使在一个功能!我不知道微软如何做到这一点(显然他们也不是,因为这个功能的正式名称是“IJW” - “它正常工作”:))。

+0

只是为了补充我们的观点,在C#中,您还可以在同一个函数中混合托管和非托管代码。这是该框架的一个特点。 – 2010-04-29 23:04:20

+0

你如何在C#中做到这一点?当然,您可以使用P/Invoke,但是您不能像C++/CLI中那样只编写代码*,就像它是本机程序一样。 – EMP 2010-04-29 23:13:18

1

我认为C#在托管环境中要好得多。 Managed C++对我来说似乎有些奇怪,我宁愿使用一种适用于托管环境的语言(而不是托管的C++将无法工作)。此外,如果需要,您可以从C#中调用非托管代码,就像从托管C++中调用代码一样。

2

我已经使用托管C++(C++/CLI)作为C#和C++之间的桥梁。我们有一个使用OpenSceneGraph作为“底层”的图形应用程序。然后使用托管C++获取一些图形数据以及C#和OSG图层之间的接口。

它在那个特定的应用程序中工作得很好。不过,我宁愿直接使用C#。