【问题标题】:Converting an entire C# project to C++ [closed]将整个 C# 项目转换为 C++ [关闭]
【发布时间】:2014-06-24 20:37:04
【问题描述】:

我有一个用 C# 编写的个人项目,但由于一些问题和平台依赖性,我决定用 C++ 重写程序。

该项目包含数十个类和数千行代码。我想知道是否有办法至少生成正确的头文件,以及只有方法存根的 cpp 文件。

我知道直接生成代码是不可能的,但是只生成程序的骨架会有很大帮助。

我的 C# 项目是 Visual Studio 2013 项目,我想将其转换为原生 c++,因此不包含 CLI

我想做的是:

  1. 列表项
  2. 获取项目中的每个类。
  3. 根据类生成头文件。
  4. 使用基于类的方法存根生成 .cpp 文件。

【问题讨论】:

  • 您尝试做的事情似乎不太可能。 C# 具有 CLI 依赖项,因此如果没有它,任何直接转换为本机代码都是不切实际的。
  • 这似乎根本不可行,但我最好的尝试是尝试使用一些逆向工程工具从您的代码中提取 UML 模型,然后使用代码生成工具从那个模型。我没有将其作为答案发布,因为我无法告诉任何支持此工作流程的特定工具,如果有的话(我认为应该有)。
  • 是的,这个 UML 反向生成似乎是个好主意,这与我最初的想法非常接近。
  • 您最好查看第三方选项,这些选项将使 .net 代码在不同平台上工作。想到了单声道。
  • 我认为 C#-reflection 恰好适合这种工作:使用反射枚举所有类、它们的方法和成员,并以 C++ 格式写出版本。可能有一些类型翻译得不好,但它肯定会给你一个起点。

标签: c# c++ code-generation


【解决方案1】:

如果您试图避免使用 C++/CLI,那么自动转换确实没有意义。

主要问题不在于类和您的代码 - 而是底层框架差异如此之大,您可能需要重组、重新架构和更改您的方法,以使事情在本机版本中正常工作.

许多在 C# 中很常见的概念不会以同样的方式映射到 C++ 中。

【讨论】:

    猜你喜欢
    • 2011-06-01
    • 2014-06-02
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 2015-12-29
    • 2015-09-16
    相关资源
    最近更新 更多