将Borland C ++迁移到C#

时间:2009-06-17 05:51:06

标签: c# c++ borland-c++

我必须执行需要将Borland C ++代码迁移到C#的项目, 为顺利迁移代码我需要遵循哪些重要步骤? 并建议任何提示和技巧?

3 个答案:

答案 0 :(得分:3)

这实际上意味着完全重写。如果我是你,我会尝试使用C ++ / CLI而不是C#。这样,您可以逐步重写代码并将其转换为托管代码。

要考虑的事项,您迁移到C#或C ++ / CLI:

  1. 将软件分区为具有干净接口的模块(使用n层架构,MVC,...)。如果每个分区都是COM对象,您甚至可以尝试仅迁移部件并在.NET中使用COM对象。
  2. 确定您所依赖的库,并检查如何在.NET中替换它们
  3. 确定使用指针的位置,并检查如何在C ++中转换此代码
  4. 检查使用RAII对象的位置,并找到在.NET中获得相同结果的方法。
  5. 我不能给你更详细的建议,因为我不知道你想要迁移什么类型的程序以及出于什么原因。

答案 1 :(得分:1)

虽然它不是真正的代码迁移,是吗?你正在做的事情本质上是用语言b(C#)重写一个以语言a(在本例中为C ++)存在的系统。这两种语言没有太多共同之处,以便于轻松进行机械翻译(C#> Java更容易机械翻译),并且取决于C ++代码的现代化程度,您可能无法翻译某些语言。直接成语。

我对合理大小项目的方法是用一种允许简单文本处理的语言编写“交叉编译器”(我最后一次使用ruby)。这种交叉编译器应该能够将大约80%的代码机械地转换成几乎可以在目标语言中编译的东西。这也允许您识别程序员需要(很多)注意的代码区域,因为您必须使用现有代码并在C#中编写功能等效代码。不要忘记,对于这个翻译工具,您还需要编写可以从头文件和实现文件中汇总必要代码的代码。根据C ++代码的组织结构,这是一项非常重要的任务。

答案 2 :(得分:1)

如果您只想迁移到.NET,请考虑使用C++/CLI。如果你真的想转向C#那么我建议的不是使用自动迁移路径,而是在转移到C ++ / CLI之后,在C#中进行新的开发,并计划在C#中将现有代码从C ++移动到C#一个强大的测试环境,用于验证随时间推移所做的更改。

但是,如果您只是必须进行大爆炸,那么您可以考虑移植到C ++ / CLI来构建托管程序集,并使用其中一个disassmble-IL-to-C#工具来自动执行该过程。我强烈反对这样做 - 但这是你的时间和项目,而不是我的。