• 注册
当前位置:1313e > 默认分类 >正文

JNI 实战全面解析

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

http://blog.csdn.net/banketree/article/details/40535325

 

// esdkWin32Project.cpp : 定义 DLL 应用程序的导出函数。
//#include "stdafx.h"
#include "com_allcam_esdk_JnieSdkIVSBase.h"jstring JNICALL Java_com_allcam_esdk_JnieSdkIVSBase_jniProc(JNIEnv * env, jclass objclass, jstring function, jstring message)
{const char *result = "success";jstring jresult;jresult = env->NewStringUTF(result);const char *resultFail = "fail";jstring jresultFail;jresultFail = env->NewStringUTF(resultFail);//jclass cls = (env)->FindClass("com/allcam/esdk/JnieSdkIVSBase");jmethodID method1 = (env)->GetStaticMethodID(objclass, "jniNotify", "(Ljava/lang/String;Ljava/lang/String;)V");if (method1 == 0){return jresultFail;}//获取obj中对象的class对象  //jclass clazz = env->GetObjectClass(objclass);//3 .调用这个方法//    void        (*CallVoidMethod)(JNIEnv*, jobject, jmethodID, ...);const char *data1 = "111";jstring jdata1;jdata1 = env->NewStringUTF(data1);const char *data2 = "abc";jstring jdata2;jdata2 = env->NewStringUTF(data2);(env)->CallStaticVoidMethod(objclass, method1, jdata1, jdata2);return jresult;
}int notify(char* function, char* message)
{return 0;
}

 

package com.allcam.esdk;public class JnieSdkIVSBase 
{static {// 有两种方式System.load();和System.loadLibrary();// load需要全路径且需要有文件扩展名;// loadLibrary是特定路径,系统system32下或项目bin目录下,只要文件名称不要.dll扩展名。// System.load("/opt/yizhichao/libjia.so"); //以绝对路径加载so文件
//		System.loadLibrary("E:/workspace/workspace_mars22/esdk/src/jnitest");System.load("C:/Users/yizhichao/Documents/visual studio 2013/Projects/esdkWin32Project/x64/Debug/esdkWin32Project.dll");
//		System.load("E:/workspace/workspace_mars22/esdk/src/jnitest.dll");}/******************************************************************function    : 功能类型message     : 请求数据return		: 返回消息数据*******************************************************************/public native static String jniProc(String function,String message); /******************************************************************function    : 功能类型message     : 请求数据return		: 响应结果*******************************************************************/public static void jniNotify(String function, String message){System.out.println("jniNotify : function:[" +function+  "], message:[" +message+ "]");}public static void main(String[] args) {System.out.println(jniProc("1","1"));}
}

 

转载于:https://my.oschina.net/yizhichao/blog/1552194

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录
相关推荐