我正在将托管 c++ 项目转换为 C# 项目。C++ 项目包含一个常量 C++ 头文件,它是项目外部的外部依赖项。
在新创建的 C# 文件中,有没有办法包含这个 C++ 头文件?我不想在 C# 文件中重新定义这些常量,因为客户端的更改将发生在 C++ 头文件中。
我正在将托管 c++ 项目转换为 C# 项目。C++ 项目包含一个常量 C++ 头文件,它是项目外部的外部依赖项。
在新创建的 C# 文件中,有没有办法包含这个 C++ 头文件?我不想在 C# 文件中重新定义这些常量,因为客户端的更改将发生在 C++ 头文件中。
不可能包括它。
你真的有两个选择
正如其他人所指出的,您可以自动化第一个。
如果你有大量的头文件,你可以看看 SWIG:http ://www.swig.org/
这将从 C/C++ 头文件生成 C# 文件。
有关更多信息,另请参阅:http ://www.swig.org/Doc2.0/SWIGDocumentation.html#CSharp
结果令人印象深刻!但命名更像 C++,而不是 C# 风格......但这是意料之中的......
不幸的是,这是不可能的,因为 C# 编译器不理解如何处理 .h 文件。即使这样做了,在 .NET 中声明无范围的变量(常量或其他)仍然是非法的。
您必须手动转换文件,或者如 Joachim Pileborg 的评论中所述,构建一个实用程序来为您自动将其转换为 C# 代码。