Marshal.GetFunctionPointerForDelegate可在.NET Core中工作,但不能在.NET Framework中工作

时间:2018-07-04 11:16:37

标签: c# .net .net-core

我正在测试用C#编写的SDK,该SDK附带了用.NET Core 2.0编写的演示控制台应用程序。我正在尝试在WPF中创建该应用程序的副本,并使代码尽可能保持相同。我在对SDK API的方法调用中添加了某些回调,但出现了此异常:无法编组“参数#3”:无法编组泛型类型。这是从对方法内部的Marshal.GetFunctionPointerForDelegate进行调用。我没有更改任何代码,它正在他们的演示应用程序中运行,并在我的系统中引发异常。这是方法调用:

_tracking_callback_id =
            video_worker.addTrackingCallback(
                TrackingCallback,
                this);

这是其API中定义的回调本身:

public delegate void TrackingCallback(int stream_id, int frame_id, List<RawSample> samples, List<bool> samples_weak, List<float> samples_quality, object userdata);

当我为他们的演示制作.NET Framework控制台应用程序副本时,也会发生这种情况,这表明它与.NET Core有关,但我不确定是什么。

0 个答案:

没有答案