假设我有一些可移植的、非可视库的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。
发布于 2012-07-02 13:11:42
为什么不将C++临时编译为托管C++,以获得.net程序集,然后使用Reflector将其分解为纯C#?
发布于 2012-07-02 12:53:09
我认为在不将代码转换为C#的情况下直接从DLL中使用这些方法是最简单的。这很好,一个缺点是您必须为不同的平台发布多个二进制文件。从Dll导入函数非常容易。
[DllImport("kernel32.dll")]
public static extern IntPtr GetProcAddress (IntPtr hModule, string procedureName);我不认为在一个DLL中同时包含C和C#代码是可行的,如果不对前者进行转换。
https://stackoverflow.com/questions/11293913
复制相似问题