gpt4 book ai didi

java - 在Java中使用C++模板框架

转载 作者:行者123 更新时间:2023-12-01 17:35:34 28 4
gpt4 key购买 nike

我目前正在进行一个学校项目,我们用 C++ 制作了一个 FuzzyLogicFramework。现在,我尝试在 Java 中使用这个框架,以便使用该框架做一个 Android 应用程序,我在 C++ 项目中有一个名为 FuzzyFactory 的工厂。其方法的原型(prototype)如下: Expression<T>* newAnd(Expression<T>*, Expression<T>*);

我不一定想使用所有可用的类型,这就是我创建这样一个类的原因:

template<> class FuzzyFactory<float>;

我用这个类生成了一个DLL库。

我的问题如下: 我想在 Java 文件中使用这个库:我可以使用什么技术?我听说过 JNI 并且能够用它运行基本功能,但是我能够管理对象实例化吗?我如何能够在 Java 中的函数参数中给出指针?我能够使用 JNI 在 Java 中运行我的 c++ 项目 main,但似乎使用 Factory 类是在另一个级别上。

我还听说过包装器JNA

我只是需要有人告诉我一种可以使用的技术,这是我第一次尝试跨语言实现,所以我有点不知所措。

如果您想了解更多有关项目当前状态的信息:https://gitlab.com/MelvinC/languageframeworkproject-ensisa-2020

我的 Java 项目和 C++ 项目应该位于同一个 git 存储库中吗?

抱歉我的英语不够好。

预先感谢您阅读并帮助我。

最佳答案

SWIG 对 C++ 模板有一定的支持,并且可以从 C++ header 生成 Java 绑定(bind)代码。这将为您提供一个非常低级但希望可用的界面。

或者,您可能需要考虑逻辑程序的某种外部表示。然后,您可以使用纯 Java 代码构建程序,然后将其序列化为外部表示形式并将其传递到 C++ 端。为了获得灵感,Z3 SMT 求解器接受名为 SMT-LIB 的表示形式。 。或者,您可以使用 S 表达式、XML 甚至嵌套 JSON 创建自己的格式。

关于java - 在Java中使用C++模板框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61048349/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com