从Java调用C ++代码(GCJ)

时间:2010-06-08 12:29:02

标签: java c++ g++ gcj cross-language

我正在尝试使用CNI使用GCJ从Java调用C ++,到目前为止我能够从C ++调用Java代码。如何使用CNI从Java调用C ++?

3 个答案:

答案 0 :(得分:4)

我会稍微考虑一下pcent的答案来阅读GCJ/CNI Docs

我认为关键是要了解整个“CNI C ++类”的概念。

  • that page
  • 中解释了CNI C ++类的创建
  • 您可以从CNI C ++类调用Java代码(假设您已经生成了头文件) - 这就是您已经做过的事情(从C ++调用Java)。
  • 关键是 CNI C ++方法可以从Java 调用(因为这些类对它们有一组限制,使它们与Java兼容)。并且因为CNI类只是一种(特定类型的)C ++类,所以您也可以将它链接到其他库,就像链接任何C ++类一样。

大多数documentation描述了Java约定如何在CNI C ++类中转换。

答案 1 :(得分:0)

尝试阅读GCJ/CNI Docs

答案 2 :(得分:-1)

我不是一个优秀的Java程序员,但我熟悉C#/ C ++互操作。我从本机C ++调用托管C#的最佳解决方案是使用 Callbacks 。我认为这也适用于 JNI

尝试阅读:http://www.tidytutorials.com/2009/07/java-native-interface-jni-example-using.html