将Visual C ++项目移植到C#

时间:2010-11-30 17:29:27

标签: c# c++ visual-c++ open-source porting

我得到了一些记录良好的C ++代码,大约是1KLOC。我需要花费大量的时间来逐行移植并调试结果,所以我想知道是否有更快的工具或方法,我有问题,以防我必须完全手动完成。

具体问题:

  • C#是否也支持覆盖*+等操作符?
  • 如何处理C ++内存管理代码,如alloc()和free()?
  • 如何识别<stdio.h><conio.h><math.h>使用的功能?
  • 如何找到此类系统功能的替代品?
  • C#是否有任何提供此类功能的特殊/开源库?

没有使用任何图形库,它纯粹基于命令行。

3 个答案:

答案 0 :(得分:2)

您可能想尝试使用此工具,看看是否适合您。有一个演示,您可以一次最多转换100行代码:

http://tangiblesoftwaresolutions.com/Product_Details/CPlusPlus_to_CSharp_Converter_Details.html

试试看,告诉我们。但是在c#中自己移植它会更有利,这样你就可以掌握c#带来的功能。

答案 1 :(得分:1)

你需要手动完成,1KLOC并不多 但是, 需要学习C#。

回答你的问题:

  • 取决于您正在做的事情,可能是List<T>
  • 我不知道你在问什么
  • 查看MSDN上的.Net Framework类库

答案 2 :(得分:1)

1 - C#也支持运算符重载,请参阅:http://msdn.microsoft.com/en-us/library/aa288467(VS.71).aspx(它看起来非常适合c ++运算符覆盖)

2 - C#被垃圾收集,所以你只需要“new”而不是alloc。免费由垃圾收集器完成

3 - 我不知道,但在移植代码时,您必须在标准c#库中找到等价物

4 - 在MSDN中有很多信息。

5 - (http://code2code.net/)???但最好还是手头呢


有关编码标准的更多信息:http://msdn.microsoft.com/en-us/library/xzf533w0.aspx 即命名:http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx