在 C# 程序中使用 C 函数

Using C functions in C# Program

我有几个 C 函数,我想在我的 C# 应用程序中使用它们,而不必按原样更改它们。有没有一种简单的方法可以使用它们而不必将它们分解成 DLL 或者这是唯一的前进道路?我可以 link 这些文件所在的直接路径并在我的 C# 应用程序中使用它们吗?

所以你的项目周围有一堆 C 文件。它们包含您要从 C# 代码调用的函数。很公平,当然,让我们数一数您可以实现该目标的可能方法。

  1. 将这些函数重写为 C#。如果这些函数没有在其他地方使用(例如在单独的 C 项目中),这实际上可能是最明智的选择,因为这样您就不必为同一项目维护两种不同语言的代码。 C# 也有许多优于 C 的优势,例如安全性和表现力,并且根据这些函数的作用,您甚至可能看不到明显的性能差异。
  2. 将该代码放入本机 DLL export those functions,然后使用 C# 中的 P/Invoke 调用它们。这是对原始代码修改最少的部分。
  3. 编写调用这些函数的 C++/CLI 包装器,并从 C# 调用 C++/CLI 代码。如果您想为 C# 代码提供一个 OOP-style 接口,这将特别有用。
  4. 使用a C interpreter像执行脚本一样执行那些C文件。这可能会更慢、更脆弱、更难维护,并且可能会有其他限制,具体取决于您使用的解释器和您的 C 代码是什么样的。