将 Visual C++ 项目移植到 C# [关闭]
Posted
技术标签:
【中文标题】将 Visual C++ 项目移植到 C# [关闭]【英文标题】:Porting a Visual C++ project to C# [closed] 【发布时间】:2010-11-30 17:29:27 【问题描述】:我得到了一些有据可查的 C++ 代码,大约 1KLOC。逐行移植并调试结果将花费我大量的时间,所以我想知道是否有工具或方法可以更快地完成它,并且我有疑问以防我必须完全手动完成。
具体问题:
C# 是否也支持覆盖运算符,例如*
和 +
?
如何处理像 alloc() 和 free() 这样的 C++ 内存管理代码?
如何识别<stdio.h>
、<conio.h>
和<math.h>
使用的函数?
如何找到此类系统功能的替代品?
C# 是否有提供此类功能的特殊/开源库?
没有使用任何图形库,它纯粹基于命令行。
【问题讨论】:
你真的在 C++ 中使用 malloc 和 free 吗?我可怜你。 @DeadMG,哇...你真的知道发布建设性 cmets 的艺术。 【参考方案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
【讨论】:
这是社区维基,比我了解更多的人可以贡献以上是关于将 Visual C++ 项目移植到 C# [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
将 Visual Studio C++ 项目“移植”到 Linux 上编译的最简单方法是啥?