如何在C#中调用C 可执行文件

How to p/Invoke a c++ executable into C#

本文关键字:调用 可执行文件      更新时间:2023-10-16

我有一个C 应用程序,该应用程序是从.cpp文件中汇编的G 。现在,我想在此.CPP文件中调用这些方法,或在我的C#应用程序中调用//可执行文件。

我正在研究能够做到这一点的不同方法,我遇到了P/Invoke。但是,听起来C 应用程序是P/调用的起点是它需要是DLL。我没有DLL,宁愿拥有此可执行文件。

我该怎么做,以使此代码在我的C#P/Indoke层中可以参考?

但是,听起来C 应用程序是P/调用的起点是它需要是DLL。我没有DLL,宁愿有此可执行文件。

对于P/Invoke,您需要将所需的功能编译到DLL中。您不能将可执行文件加载到另一个过程中。

您可以在另一个过程中运行可执行文件,并通过某种形式的IPC与它进行通信。一个这样的选项将是一个失败的COM服务器。

但是,我怀疑最简单的路线是将代码编译成DLL。

dlls和exes都是Windows PE文件,因此要么工作正常。您只需要确保要拨打的功能已正确导出即可。

不过,您需要为要导出的所有内容创建C包装功能。将extern "C" __declspec(dllexport)添加到其原型中,并使用它们调用您所需的C 代码。