【发布时间】:2012-07-02 21:09:24
【问题描述】:
假设我有一些用于可移植、非可视库的 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 代码是一个适当的可执行文件还是只是一个库?无论如何,您可以将 P/Invoke 用于 C 库或在 exe 的情况下执行并捕获输出
-
如果你不需要维护代码,为什么不创建一个DLL并引用它……比如COM+对象
-
翻译不太可能实现,因为 C# 代码没有指针,将基于指针的代码转换为非基于指针的代码几乎不可能自动化。
-
为什么将一个文件作为输出如此重要? Windows 应用程序只有一个可执行文件而没有附带文件的情况并不常见。
标签: c# c++ c emulation converter