And*_*w K 8 c# c++ ubuntu cross-platform .net-core
我有两个组件:
- 在Ubuntu OS上运行的.Net Core Application.
- C++共享库(.so)
现在我希望C++组件能够调用.Net Core方法,将接口传递给C++组件,该组件将使用此接口进行回调方法实现或将方法作为参数传递给C++组件.
我想要实现的高级示例:
C#组件:
public interface IDevice
{
void OnDataAvailable(string data);
}
public class Device: IDevice
{
[DllImport("sampleCPPLibrary.so")]
private static extern int SetReceiver(IDevice receiver);
public void OnDataAvailable(string data)
{
Console.WriteLine(data);
}
public void Initialize()
{
SetReceiver(IDevice(this))
}
}
Run Code Online (Sandbox Code Playgroud)
C++组件:
extern "C" {
void SetReceiver(IReceiver * receiver)
{
receiver->OnDataAvailable(10);
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,我想要做的只是将某种"回调"传递给C++组件,并在C++组件中发生某些事件时调用此"回调".
请参阅从评论中查看此问题我构建了代码,其中 C# 调用 C 并为其提供回调委托。因此,它从 C 调用 C#,并传递附加的 int 类型参数。请参阅此处来自 endurox 项目的评论,并附加 c-callback.tar.gz 作为工作示例。
| 归档时间: |
|
| 查看次数: |
1292 次 |
| 最近记录: |