2019独角兽企业重金招聘Python工程师标准>>>
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"));}
}