从C ++升级到C#

时间:2010-10-20 10:03:04

标签: c# .net c++ upgrade

我有一个用C ++编写的大型应用程序,由于各种原因我要用C#重写它,我已经做了很多Delphi到C#,VB到C#但是C ++到C#我从来没有做过,虽然我有能力C ++我希望这个转换尽可能顺利。

主要是我要问的是,在这次转换中有哪些陷阱等待我,我应该注意哪些关键领域或者你可以提供给我的任何建议。

这篇文章相当不错,但还有什么我应该厌倦的吗?

http://msdn.microsoft.com/en-us/magazine/cc301520.aspx

5 个答案:

答案 0 :(得分:6)

主要陷阱 - 不要认为这是升级。这些是不同的语言,在许多地方,您将需要完全不同的方法来解决问题。因此,您应该考虑使用最少的代码重用来重新实现。

这篇文章很不错。

答案 1 :(得分:3)

我建议你注意对象的生命周期。

在C ++中,当你完成它们时,你会明确地销毁它们。在C#(.NET)中,你没有。可能会发生一个对象持有某些重要资源(文件句柄,数据库连接等)。如果是一个问题,请使用using指令。

答案 2 :(得分:2)

您需要翻译代码的精神,而不是代码本身。你需要在C ++中留下你必须要做的所有事情,因为那是在那里完成的。好的翻译是高度创造性的过程,所以要有创意。

答案 3 :(得分:1)

弦乐器的处理在开始时对我来说是一个陷阱。虽然我在Visual C ++中使用指针,但C#中的方法确实会返回值。

dummy = dummy.Replace("a", "b");

答案 4 :(得分:1)

如果你有C ++ dll而你想在C#项目中使用它们,你可以在pinvokeDllImport

之前使用它们

当您尝试将非托管代码转换或重写为托管代码时,会有很多差异。这是一个C++ to C# converter,非常适合将您的c ++代码转换为C#,但您不能期望使用它转换整个项目。