在将我的业务逻辑代码从JAVA迁移到Kotlin / Multiplatform之前,我想实现一些用例。 其中之一是使用c ++代码。 在commonMain级别的Kotlin / Multiplatform项目中可以使用c ++代码吗? 还是我需要为每个平台编写包装层(如JNI)? 我可以得到一些示例代码吗?
非常感谢!
答案 0 :(得分:2)
调用C ++可能很棘手。您需要在JVM上具有JNI,在本机上,您需要使用C(或Objective-C)包装C ++,然后使用cinterop将其提供给本机Kotlin编译器。然后,通常,您需要编写逻辑的通用版本,并在每个平台上实现该逻辑。
Kotlin(common)
|
/ \
/ \
Kt(jvm) Kt(native)
/ \
JNI C/ObjC
/ \
C++ C++
最终可能会在本机上直接进行C ++互操作,但不确定何时。
答案 1 :(得分:0)
您可以使用cinterop
工具生成Kotlin绑定。在此处C Interop - K/N