草庐IT

jni_generator

全部标签

java - 使用 jni 从 C++ 将 UTF 字符发送到 Java

我想将Hangul(使用UTF的韩语符号)文本从C发送到JAVA。但是JAVA得到的结果不正确示例:JNIEXPORTjstringJNICALLJava_get_1term(JNIEnv*env,jobject,jinttermInd){constchar*str="음뮤원음직음원샘";return(env)->NewStringUTF(str);}但在那种情况下,JAVA得到了不正确的字符串。我在其他帖子中找不到我的问题的答案,如果有相同的问题请给我他们的链接 最佳答案 试试这个(摘自并改编自here):jstringWindo

java - 在 JNI 中连接 C++ istream/ostream 和 Java InputStream/OutputStream

是否有任何现有的C++/JNI库可以在JavaInputStream和C++istream以及JavaOutputStream之间编码访问和C++ostream?特别是,我希望Java应用程序能够将InputStream或OutputStream传递到使用iostreams作为其流接口(interface)的C++库中.如果不存在现有库,我需要在istream/ostream实现中实现的最低功能是什么以支持它?更糟糕的是,我还需要支持seek和tell,尽管原则上我应该能够使用mark、重置,然后跳过以执行我需要的操作。由于这些流可能非常大,我不想简单地将它们加载到ByteArray中

java - jni 在内部类中找不到方法,java.lang.NoSuchMethodError

我有一个关于使用JNI访问嵌套类中的方法的问题。publicclassAccountUI{publicnativeExtrasWageUI[]getExtrasWages();publicclassExtrasWageUI{publicExtrasWageUI(){mCppHandle=callConstructorN();}publicExtrasWageUI(longcppHandle){mCppHandle=cppHandle;}privatenativelongcallConstructorN();}}我将在accountUI.getExtrasWages()处得到错误:jav

java - 使用 JNI 将 Scala 对象返回给 C++

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭6年前。Improvethisquestionvm_args.version=JNI_VERSION_1_2;vm_args.nOptions=1;vm_args.options=options;vm_args.ignoreUnrecognized=JNI_FALSE;jintrc=JNI_CreateJavaVM(&jvm,(void**)&env,&vm_args);deleteoptions;if(rc!=JNI_OK){cin.get

c++ - generate_canonical 输出是否跨平台一致?

C++标准在[rand.util.canonical]下非常详细地指定了模板函数std::generate_canonical的工作方式(尽管它只提供伪代码,而不是C++代码)。规范作者的意图是在不同的平台上,RealType的数学运算相同,并且对于确定性的URNG,在两个平台上给出相同的输出平台,std::generate_canonical也提供相同的输出?这与类似的问题有关,例如Is1.0avalidoutputfromstd::generate_canonical?--散文指出1.0被排除在外,但他们在伪代码中给出的算法有时将其作为输出包括在RealType和URNG的某些组合

java - 使用 JNI 从 Java 访问 C++ 对象数组

关注previousquestion我的,和SomeName的回应,我想尝试相反的方式并加强之前的问题:我想执行以下步骤:在Java中分配缓冲区用C++填充数组用Java编辑值用C++做一些数字运算读取Java中的值考虑以下C++类:#pragmaonce#pragmapack(push,8)classPoint{public:doublex;doubley;Point();virtual~Point();voidebeProduct(Point&other){x=x*other.x;y=y*other.y;}};Point::Point(){}Point::~Point(){}#pr

java - 将 std::unique_ptr 传递给 JNI

我正在用JNI包装一些C++代码,偶然发现了以下工厂函数:std::unique_ptrcreate_metric_planner(*arguments*)我需要将此函数创建的规划器的引用传递回Java以供以后使用,但我很困惑a)如何将其传回,以及b)一旦它被传递下去会发生什么。通常情况下,我都是这样过去的:Director*DIRECTOR=newDirector(arguments);return(jlong)DIRECTOR;它的效果非常好。有人可以解释当使用返回此类指针的工厂函数而不是普通构造函数时使用JNI引用对象的类似过程吗? 最佳答案

c++ - 不满意链接错误 : undefined symbol _ZN5boost6system16generic_categoryEv in java (JNI)

我创建了一个.so文件,其中我根本没有使用boost库(当然早些时候我使用过它),但后来我切换到pthreads并删除了所有头文件和boost.so文件链接生成文件。Java文件编译成功。但是,当我尝试使用java-Djava.library.path=libs/-cpbuild/发送它给我以下错误。线程“main”中的异常java.lang.UnsatisfiedLinkError:/home/aahmed/libplxmsg-java/libs/libplxmsgjavaasyncbinder.so:/home/aahmed/libplxmsg-java/libs/libplxms

java - JNI : Invoke JAVA method from C++, 返回对象、引用和 GC

当C++程序(!)调用返回对象的java方法时,规则是什么?是否有对该对象的突出引用?我必须调用“DeleteLocalRef”来确保该对象是GCd,还是会自动成为GCd?我不清楚的原因是,在所有示例和官方文档中,声明“DeleteLocalRef”不是必需的,只有当从java调用native“C/C++”方法时,它对我才有意义。但是如果调用线程是调用java的C++方法,JVM怎么知道这个对象可以GCd呢?同理:如果我想缓存对象,我必须调用“NewGlobalRef”吗?找不到对此的任何引用...感谢任何引用和/或澄清 最佳答案

c++ - 粒子系统 : particle generation

我有一个系统可以从源中生成粒子并更新它们的位置。目前,我在OpenGL中编写了一个程序,它调用我的GenerateParticles(...)和UpdateParticles(...)并显示我的输出。我希望我的系统具备的一项功能是能够每秒生成n个粒子。在我的GenerateParticles(...)和UpdateParticles(...)函数中,我接受了2个重要参数:current_time和delta_time。在UpdateParticles(...)中,我根据以下公式更新粒子的位置:new_pos=curr_pos+delta_time*particle_vector。我如何