从C#与C交谈

mwo*_*ong 5 c c#

我有一个用C(而不是C++)实现的遗留代码.我希望能够从我的C#代码(在Windows上)中调用此C代码中的一些方法.这两种语言之间接口的最佳方法是什么?请注意,C中的方法不是无状态的.我们需要调用两种方法:

  1. initialization()=>这将初始化数据结构并将数据从文件加载到内存中.此方法将被调用一次.
  2. ComputeSomething(parameters)=>从C#到这个方法会有几次调用.

注意:这两个方法实际上调用了其他几个方法,但这些只是我们要向C#公开的两个方法(代码非常复杂,这就是为什么我们不想移植到C#)

我已经能够将c代码导入visual studio并能够成功编译代码.我知道我们可以将C代码实现为windows服务,但我正在寻找一种允许我们直接从C#调用C方法的解决方案.任何指针都非常感谢!(COM互操作与我要做的事情有关吗?)

Jas*_*ans 10

听起来你可以用P/Invoke它.查看此站点以获取提示:

http://www.pinvoke.net/

此外,尝试搜索SO上的意见P/InvokeGoogle

c#pinvoke调用c代码

我手边没有任何技术示例,但我编写了一些名为Win32 API的.NET代码P/Invoke.棘手的部分是在传递参数时使方法签名正确.可能会帮助你.