我按照https://github.com/cisco/openh264中提到的所有说明进行操作,但我无法完成.该信息在链接中引用,但它非常令人困惑.
我按照下面给出的指令 从Java中调用c函数调用c函数, 然后我就可以调用C++函数了.但是现在我想从Java调用C++类的成员函数.为了清楚地描述它,我引用了下面的场景.
JAVA.有一个名为HelloWorld.java的类,它有一个名为print()
Now的本机函数,使用Java的JNI我已经为HelloWorld创建了等效的头文件.之后我在HelloWorld.cpp中编写了这个头文件的实现
现在从"HelloWorld.cpp"我想调用"rectangle.cpp"的成员函数,我已经为其创建了"rectangle"对象并调用了它的相应函数.但是在编译代码时,它会给我一个名为"未解析的外部符号"的错误.相反,当我在rectangle.h中的相应头文件"rectangle.cpp"中编写所有实现时,代码编译得很好,它给了我想要的结果.我的问题,没有办法,然后我可以调用.cpp类的成员函数而不是它相应的头文件函数.
以下是代码片段::
HelloWorld.java
class HelloWorld {
private native void print();
private native void multiply();
public static void main(String[] args) {
new HelloWorld().print();
new HelloWorld().multiply();
}
static {
System.loadLibrary("HelloWorld");
} }
Run Code Online (Sandbox Code Playgroud)
HelloWorld.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloWorld
* Method: print
* Signature: ()V
*/
JNIEXPORT void …
Run Code Online (Sandbox Code Playgroud)