【问题标题】:How to use java to call C# Library that call a native C++ library如何使用java调用调用本机C++库的C#库
【发布时间】:2014-06-30 22:22:38
【问题描述】:

我正在尝试为 Playstation 上的“实时编辑”制作一个 android 应用程序,它依赖于 2 个库来运行。其中一个是用 C# 编码的,而另一个是用 Native C++ 编码的。 C# 库使用 Importdll 函数调用本机 C++ 代码,而这些代码又与 PS3 一起执行。

例子:

[DllImport("CCAPI.dll", EntryPoint="_ZN5CcApi13getDllVersionEv", CallingConvention=CallingConvention.Cdecl)]
    private static extern int getDllVersion();
    public int GetDllVersion()
    {
        return getDllVersion();
    }

问题:C++ 库不是开源的。而且我认为在不添加 java 标头的情况下使用 JNI 调用 C++ 库中的方法是不可能的。 (对不起,如果这听起来有点愚蠢,我真的是第 1 天的 JAVA 新手)。

我只是想知道我是否可以制作 PS3Lib (javaplugin) 的 java 版本,以便它可以与 CCAPI.dll 一起使用。

C# 库:PS3Lib.dll http://www.mediafire.com/download/chsvllkrmvb56vi/PS3Lib4.4.2.1.dll C++库:CCAPI.dll http://www.mediafire.com/download/k5x3c1s6z26cuzt/CCAPI2.50.dll

谢谢,感谢任何人阅读本文。任何反馈将不胜感激。

【问题讨论】:

  • Android 上没有对 .net 运行时的原生支持。您可以使用Xamarin 中的工具使其工作;但它们不是免费用于商业用途,我不知道它们是否允许运行 .net 二进制文件或通过将 C# 代码交叉编译为 java 以在 Android 上运行来工作。 (在后一种情况下,他们将无济于事。)
  • 事实上,我在 XAMARIN 中为它创建了一个库。 :D 但问题是我无法在 XAMARIN 中开发,因为即使是 hello world APP 也无法工作,因为它一直在强制关闭...:/(我认为它是一个 .dll 错误。)@DanNeely
  • 询问有关 Xamarin 崩溃的新问题可能会为您提供帮助。我从未使用过它,所以我无法提供任何直接的建议。

标签: java c# android c++ ps3


【解决方案1】:

找到我需要的答案。您必须使用 JNI(Java Native Interface)来包装 C# 库并调用 C++ 方法。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多