我必须执行需要将Borland C ++代码迁移到C#的项目, 为顺利迁移代码我需要遵循哪些重要步骤? 并建议任何提示和技巧?
答案 0 :(得分:3)
这实际上意味着完全重写。如果我是你,我会尝试使用C ++ / CLI而不是C#。这样,您可以逐步重写代码并将其转换为托管代码。
要考虑的事项,您迁移到C#或C ++ / CLI:
我不能给你更详细的建议,因为我不知道你想要迁移什么类型的程序以及出于什么原因。
答案 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#工具来自动执行该过程。我强烈反对这样做 - 但这是你的时间和项目,而不是我的。