5

我正在开发一个手动将 C++ 代码转换为 C# 的项目。我有 C# 的工作知识,但我以前从未使用过 C++。

我需要知道的是如何处理头文件,因为 C# 没有这样的东西。假设我有 buffer.h 和 buffer.cpp,我是否将它们都转换并将它们包含在同一个 buffer.cs 文件中?

C++ 头文件是否与 Ada 规范文件有任何关联?

4

2 回答 2

6

包含“.h 文件”和源“.cpp 文件”之间的区别只是约定之一。约定是声明(函数、类等)在 .h 文件中,这些文件#include在实现(定义)或 .cpp 文件中。在大多数情况下,您可以将 Xh 和 X.cpp 折叠到单个 X.cs 文件中。

也就是说,您仍然需要查看每个文件中发生的情况。在这里,对 C++ 的基本了解会有很长的路要走,我强烈建议您在深入翻译之前获得一些东西。

于 2012-05-04T13:53:10.967 回答
1

它可能有助于您将 C++ 头文件视为包含两种主要类型的东西:类定义,它定义其成员数据和“接口”(不要与 C# 接口类型混淆)和“其他东西”。类定义部分包含方法原型和类成员变量。

关于原型的好消息是您在 C# 中根本不需要它们。您的类的客户端通过命名空间的程序集从实现本身接收原型信息。数据成员包含在您的 C# 类实现中,通常作为通过 C# 属性公开的私有成员。

上面提到的“其他东西”可以包括#defines,您通常希望将其转换为 C# 中的 const 定义。诸如枚举之类的其他内容在 C# 中具有等价物,您当然可以将其移入类的 .cs 文件中。

于 2012-05-04T14:03:52.440 回答