将 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 上编译的最简单方法是啥?

将 GNU C++ 程序移植到 Visual C++

C++ - 将 C++ 代码从 Visual Studio 移植到 Linux Eclipse IDE 时出现问题

将本机 C++ 移植到 .NET [关闭]

将 Visual Studio C++ 移植到 Linux

将 C# 桌面应用程序移植到 Web