如何在C#中调用C 可执行文件
How to p/Invoke a c++ executable into C#
我有一个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 代码。
相关文章:
- 在 c++ 托管和异步运行中调用 c# 可执行文件
- 调用函数一次用于动态链接库,一次从可执行文件调用函数
- 只有一个可执行文件即可进行跨平台 SIMD 调用?
- 从 PHP 调用已编译的C++可执行文件来创建套接字
- 调试Visual Studio中可执行文件调用的C 文件
- 如何在C++代码中使用 SVM Light?(可能无需从C++代码调用可执行文件)
- 如何在C#中调用C 可执行文件
- 在单独的可执行文件中调用INSTANTIATE_TEST_CASE_P时,库中的TEST_P测试不会运行
- 如何在 c++ 中调用 unicode 函数 CreateProcessW 来启动 Windows 可执行文件
- 在 Visual C++ 系统调用的路径中找不到可执行文件
- 通过Linux命令行执行时,可执行文件运行正常 - 调用C System()命令时运行时错误
- 如何调试外部调用的C++可执行文件
- 使用系统命令调用可执行文件
- 从JAVA调用C++可执行文件
- 系统调用 open() 创建可执行文件
- 将 COM 类转换为 C#C++以便由可执行文件C++调用
- C++程序上的执行错误:静态可执行文件调用 DLL 库
- c++,总是运行进程或调用可执行文件
- 用c++调用可执行文件并并行运行
- 不能从c++程序中调用可执行文件