有没有一种方法可以直接从C#中访问C文件而不使用dll?

时间:2020-02-25 20:57:40

标签: c# c mono dllimport

我正在制作一个应用程序,其中存在大量来自C和C#的来回通信,我想知道是否有任何方法可以直接导入C,而不是将c文件导出到DLL并将其导入我的C#中代码。

示例:

(C)

void myFunction() {
}

(C#)

#include "myFile.c"

...

myFunction();

谢谢!

2 个答案:

答案 0 :(得分:1)

您有两个选择:

  1. 以与C#代码相同的过程托管C代码。这将需要一个DLL,无论是托管的还是非托管的。
  2. 在外部进程中托管C代码。这将涉及进程间通信,例如COM。

在这两个之中,前者肯定要简单得多。

答案 1 :(得分:-1)

需要DLL的原因是C#是点网框架的一部分,因此可能是由运行时解释器运行的。 C代码不是。因此,需要将C代码打包到C#运行时系统可以加载的DLL中。

(从概念上讲,这种情况实际上与在运行时由某种解释器管理的许多其他语言系统非常相似。)