我需要将一些ANSI C代码导入到我正在处理的项目中。由于我不想进入的原因,我想将代码重构为C#而不是尝试包装原始代码。我可能花了几天的时间手工完成这项工作,但在我开始之前,是否有一个自动化工具可以帮助我完成大部分工作?我是一个小气鬼,我正在做的工作是无偿的,所以只有免费的工具才能满足。
答案 0 :(得分:2)
如果手动重构“仅”需要几天时间,那么这将得到我的投票。根据C代码的作用及其编写方式(指针,自定义库等),自动转换器可能会造成混乱。除了手工转换之外,纠缠这个混乱可能是一个更大的任务。
答案 1 :(得分:1)
设置,清理,重构以及只是简单地制作转换后的代码(如果有可用的转换器)可能会有数周或数月的时间,因此您可以更好地服务于手动重写。
答案 2 :(得分:1)
GCC有一个实验CLI Back-End and Front-End。它已经能够将C程序的子集编译成CIL,即CLR运行的字节码。
(该网页似乎代码仅在几个月内开发,然后被忽略,但它已过时; ST Microelectronics正在继续维护和开发。)
你没有指定为什么你想要一个C到C#的翻译器,但是如果你只想让C和C#在没有P / Invoke或COM的情况下一起玩,那么它可能已经足够了。
答案 3 :(得分:1)
首先将现有代码编译为托管C ++即C ++ / CLI,这可能是有意义的。假设进展顺利,那么你就有了一个可以建立的可行的,可测试的基础。将关键功能移动到他们自己的类中,并根据需要在此过程中重写为C#。