将C++程序转换为 C#

Converting a C++ program into C#

本文关键字:程序转换 C++      更新时间:2023-10-16

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

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

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

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

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

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

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

上面提到的"其他内容"可以包括 #defines,您通常希望将其转换为 C# 中的 const 定义。 其他内容(如枚举)在 C# 中具有等效项,当然,您可以将这些等效项移动到类的.cs文件中。