有没有一种方法可以在没有 dll 的情况下直接从 C# 访问 C 文件?
Is there a way to directly access a C file from C# without a dll?
我正在制作一个应用程序,其中有很多 C 和 C# 之间的来回通信,我想知道是否有任何方法可以直接导入 C,而不是将 c 文件导出到 DLL 并将其导入到我的 C# 代码。
示例:
(C)
void myFunction() {
}
(C#)
#include "myFile.c"
...
myFunction();
谢谢!
您有两个选择:
- 在与 C# 代码相同的进程中托管 C 代码。这将需要一个 DLL,托管或非托管。
- 在外部进程中托管 C 代码。这将涉及进程间通信,例如 COM。
这两个中,前者肯定简单得多。
需要 DLL 的原因是 C# 是 dot-net 框架的一部分,因此可能 运行 由 运行time 解释器提供。 C代码不是。所以,需要将C代码打包成C#运行时间系统可以加载的DLL。
(从概念上讲,这种情况实际上与许多其他语言系统的情况非常相似,它们在运行时由某种解释器管理。)
我正在制作一个应用程序,其中有很多 C 和 C# 之间的来回通信,我想知道是否有任何方法可以直接导入 C,而不是将 c 文件导出到 DLL 并将其导入到我的 C# 代码。
示例:
(C)
void myFunction() {
}
(C#)
#include "myFile.c"
...
myFunction();
谢谢!
您有两个选择:
- 在与 C# 代码相同的进程中托管 C 代码。这将需要一个 DLL,托管或非托管。
- 在外部进程中托管 C 代码。这将涉及进程间通信,例如 COM。
这两个中,前者肯定简单得多。
需要 DLL 的原因是 C# 是 dot-net 框架的一部分,因此可能 运行 由 运行time 解释器提供。 C代码不是。所以,需要将C代码打包成C#运行时间系统可以加载的DLL。
(从概念上讲,这种情况实际上与许多其他语言系统的情况非常相似,它们在运行时由某种解释器管理。)