从C调用scala代码?

时间:2017-04-08 13:47:47

标签: scala scala-native

我使用scala-native在scala中包装C API,但是C API期望用户通过API提供回调信号:

 void set_terminate (void * solver, void * state, int (*terminate)(void * state));

定期调用回调以检查API进程是否必须中断。

我想在

中将它包装到此sig中
def setTerminate[A](
      state: A,
      terminate: native.CFunctionPtr1[A, native.CInt] ): Unit = {
      ipasir_set_terminate(solver, state, terminate)
    }

我看到在nativelib.scala中定义了一些从scala到native的隐式转换

https://github.com/scala-native/scala-native/blob/master/nativelib/src/main/scala/scala/scalanative/native/CFunctionPtr.scala

但是我无法理解它是如何工作的,以及如何从A到native.Ptr [Byte]执行擦除

任何帮助表示赞赏

0 个答案:

没有答案