将单声道C转换为正在运行的C#程序 我正在用单声道来研究C++程序与C语言程序之间的通信。在Mono网站上,他们有一些将Mono嵌入C程序、启动C#程序、然后在两者之间通信的好例子
mono_domain_assembly_open用于打开C#assembly,mono_jit_exec用于运行它 我的问题是,是否可以“连接”到已经运行的程序集?在我看来,mono_jit_exec调用似乎不需要,因为C#assembly已经在运行了。相反,是否会有另一个调用“链接”C和C程序 谢谢将单声道C转换为正在运行的C#程序 我正在用单声道来研究C++程序与C语言程序之间的通信。在Mono网站上,他们有一些将Mono嵌入C程序、启动C#程序、然后在两者之间通信的好例子,c#,c,interop,mono,C#,C,Interop,Mono,mono_domain_assembly_open用于打开C#assembly,mono_jit_exec用于运行它 我的问题是,是否可以“连接”到已经运行的程序集?在我看来,mono_jit_exec调用似乎不需要,因为C#assembly已经在运行了。相反,是否会有另一个调用“链接”C和C程序 谢谢 mj您需要使用某种IPC(进程间通信),因为您的C程序无法控制C程序。可能的方法是命名管道、某种TCP/IP通信、远程处理(不确定这是否适用于mono)。您需要使用某种IPC(进程间通信),因为
mj您需要使用某种IPC(进程间通信),因为您的C程序无法控制C程序。可能的方法是命名管道、某种TCP/IP通信、远程处理(不确定这是否适用于mono)。您需要使用某种IPC(进程间通信),因为您的C程序无法控制C程序。可能的方法是命名管道、某种TCP/IP通信、远程处理(不确定这是否适用于mono)。我猜您指的是在同一进程中,在C端和托管(C#)端之间交换数据/执行调用的mono特定方法(对于不同的进程,您必须使用套接字,如tcp/ip,并根据需要开发协议或使用现有协议) 首先,要从托管代码中调用C函数,有两种主要机制:
- P/Invoke调用(有关更多详细信息,请参阅),使用“\uu Internal”作为dll名称,在执行程序中而不是外部库中查找函数
- InternalCall调用:这是一个作为C函数实现的托管方法,有关简单示例,请参阅mono源代码中的samples/embed/teste.C
如果启动一个单独的线程,请确保在调用任何其他mono函数或操作其中的托管对象之前,先在其内部调用mono_thread_attach()。我猜您指的是在同一进程中,在C端和托管(C#)端之间交换数据或执行调用的特定于mono的方法(对于不同的进程,您必须使用套接字,如tcp/ip,并根据需要开发协议或使用现有协议) 首先,要从托管代码中调用C函数,有两种主要机制:
- P/Invoke调用(有关更多详细信息,请参阅),使用“\uu Internal”作为dll名称,在执行程序中而不是外部库中查找函数
- InternalCall调用:这是一个作为C函数实现的托管方法,有关简单示例,请参阅mono源代码中的samples/embed/teste.C