C/C++ 到 C# 转换器或仿真器

C/C++ to C# converter or emulator

本文关键字:转换器 仿真器 C++      更新时间:2023-10-16

假设我有一些可移植的非可视化库的C代码。代码主要依赖于CRT(没有QT/DirectX/WinAPI等依赖项)。

有没有办法在 C# 应用程序中使用此代码?我知道托管C++,这对我来说是一种可接受的方式。

我想到了一个可用于自动翻译的 C/C++ 到 C# 转换器(我不需要可读的输出,一个工作输出就足够了)或一个可以用来执行编译的 C/C++ 代码的模拟器。

您知道有什么可以帮助我使用 C# 代码中的现有 C/C++ 代码吗?

编辑:

P/Invoke也不是一种可接受的方式。以及调用外部 EXE 或使用 COM/ActiveX。我需要一些允许我将 C 和 C# 代码合并到一个托管 DLL 或 EXE 中的东西。

现有的 C 代码是一个库 (.lib),而不是一个 EXE。

为什么不暂时将C++编译为托管C++,以获取 .net 程序集,然后使用 Reflector 将其反编译为纯 C#?

我认为直接从 DLL 使用这些方法最容易,而无需将代码转换为 C#。这很好用,一个缺点是您必须为不同的平台发布多个二进制文件。从 Dll 导入函数就像

[DllImport("kernel32.dll")]
public static extern IntPtr GetProcAddress (IntPtr hModule, string procedureName);

我不认为在不转换前者的情况下将 C 和 C# 代码合并到一个 DLL 中是行不通的。