您可能不必转换代码。
link.exe 是 C++ 编译器工具的一部分,它能够在同一个程序集中包含 C++ 和 C# 代码。C++ 位可以包含托管和非托管代码的混合。您首先必须使用 C# 编译器 (csc.exe) 的命令行开关将 C# 代码编译为 .net 模块,然后您可以使用 link.exe 将其编译为带有 C++ 代码的程序集。自从我创建了一个混合语言程序集以来已经有一段时间了,如果细节不是 100%,我们深表歉意,但是搜索上述术语,你会找到一种方法。
我似乎记得关键部分是记住 C++ 编译器比其他编译器更先进,因此可以使用 C#/VB 网络模块,但反过来不行。我发现编译成单个程序集而不是一个程序集引用另一个程序集的优点是单个程序集的每个部分内的类型可以相互交叉引用。通过在两个单独的程序集之间进行引用,类型感知关系必须是分层的。
C# 中还有unsafe关键字,它允许在 C# 代码文件的各个部分中使用 C++ 风格的指针,并关闭数组边界检查。根据您的使用场景,这可能会或可能不重要。
就我个人而言,我发现在 C++ 编译器中运行一些计算密集型代码的速度比 C# 快 20 倍,在我使用 C++ 中可用的指针对其进行优化之后,这在我的案例中是值得的。