3
|
Judah Gabriel Himango · 技术社区 · 15 年前 |
1
3
如果许可是可接受的(lgpl), Java Native Access 提供了比JNI更友好的FFI;移植可能会减少剥离RNI层并只公开一个简单的“C”可调用API。 |
2
3
看一看 JNA -可以通过这种方式直接访问RNI DLL;或者至少它将使移植RNI的工作比手动执行JNI容易得多。 |
3
2
如果可能的话,我建议您考虑通过重写纯Java中的C++代码来避免RNI& GT;JNI移植问题。 编写JNI代码需要大量的注意,如果您弄错了,就可能危及到JVM的稳定性。我的建议是,如果可能的话,尽量避免。 |
4
1
虽然我从未使用过微软的RNI,只有Sun的JNI,但我希望您不能像使用JNI样式的DLL一样直接使用RNI样式的DLL。我也不知道有什么东西会自动转换或桥接RNI到JNI。 你没有提到如果你有C++的RNI DLL的来源,尽管我会假设你这么做,因为你提到继承项目。如果您有任何C++/C经验,并且对RNI DLL所提供的功能有很好的了解,那么将其移动到JNI应该不太困难。投入在移植上的时间很可能会使它继续向前发展。 您提供给上的JNI条目的链接 Wikipedia 在使用JNI编码方面有很多有用的链接。如果没有更多的细节,很难给出任何其他建议。 |
5
1
Java Native Interface: Programmer's Guide and Specification 是我为编写JNI代码找到的最佳资源。它不包括RNI->JNI,但它是学习JNI如何工作的一个很好的*起点。 *它实际上非常干燥,阅读也不是特别有趣,但它是我所能找到的最好的。 |
melmi · 如何在C中实例化堆中的结构# 7 年前 |
Max · 使用flatbuffers从C#序列化到本机内存缓冲区 7 年前 |
Saurabh Agrawal · 如何在数据标签C中使用模式属性# 7 年前 |
Nat · 如何在UWP应用程序中创建COM对象?(C#) 9 年前 |