【问题标题】:Porting a Visual C++ project to C# [closed]将 Visual C++ 项目移植到 C# [关闭]
【发布时间】:2010-11-30 17:29:27
【问题描述】:

我得到了一些有据可查的 C++ 代码,大约 1KLOC。逐行移植并调试结果将花费我大量的时间,所以我想知道是否有工具或方法可以更快地完成它,并且我有疑问以防我必须完全手动完成。

具体问题:

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

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

【问题讨论】:

  • 你真的在 C++ 中使用 malloc 和 free 吗?我可怜你。
  • @DeadMG,哇...你真的知道发布建设性 cmets 的艺术。

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


【解决方案1】:

您可能想试试这个工具,看看它是否适合您。有一个演示,您一次最多可以翻译 100 行代码:

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

尝试一下并告诉我们。但是,将其移植到 c# 中会更有益,这样您就可以掌握 c# 附带的功能。

【讨论】:

    【解决方案2】:

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

    回答您的问题:

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

    【讨论】:

      【解决方案3】:

      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

      【讨论】:

      • 这是社区维基,比我了解更多的人可以贡献
      猜你喜欢
      • 2012-08-15
      • 1970-01-01
      • 2022-09-23
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 2015-10-03
      • 2010-10-08
      • 1970-01-01
      相关资源
      最近更新 更多