java调用vsdll_vs2013封装dll以及java调用

public class SVBufferAppend {

public static native int byteAppend(byte[] svBuffer, int offset,int ct,int cl,int vl,int value);

编译成.class文件   javah -classpath . -jni SVBufferAppend   生成.h文件  如下

/* DO NOT EDIT THIS FILE - it is machine generated */

#include

/* Header for class SVBufferAppend */

#ifndef _Included_SVBufferAppend

#define _Included_SVBufferAppend

#ifdef __cplusplus

extern "C" {

#endif

/*

* Class: SVBufferAppend

* Method: byteAppend

* Signature: ([BIIIII)I

*/

JNIEXPORT jint JNICALL Java_SVBufferAppend_byteAppend

(JNIEnv *, jclass, jbyteArray, jint, jint, jint, jint, jint);

#ifdef __cplusplus

}

#endif

#endif

用VS新建win32 的项目   配置如下

选择  程序类型  DLL     勾上导出符号      去掉 安全开发生命周期检查的勾(SDL)

右击项目选择属性    设置平台  X64

配置属性 常规  配置类型  dll动态库

vc++目录   选择包含目录  C:\java\jdk1.7.0_80\include   C:\java\jdk1.7.0_80\include\win32

库 目录     C:\java\jdk1.7.0_80\lib

然后包含之前生成的 .h文件

编写对应的方法代码

JNIEXPORT jint JNICALL Java_SVBufferAppend_byteAppend

(JNIEnv * a, jclass b, jbyteArray c, jint offset, jint ct, jint cl, jint vl, jint value){

/*

jbyte* bytebuf = new jbyte[byteArrayLength];

//JAVA to DLL

a->GetByteArrayRegion(c, 0, byteArrayLength, bytebuf);

printf("%x\n", *bytebuf);

printf("%x\n", *(bytebuf+1));

printf("%x\n", *(bytebuf+2));

//DLL set to JAVA

//a->SetByteArrayRegion(c, 0, byteArrayLength, bytebuf);

delete[] bytebuf;

*/

// 获取传过来的数组长度

int byteArrayLength = a->GetArrayLength(c);

printf(" byteArrayLength=%d\n", byteArrayLength);

// 获取数组操作

jbyte* bytebuf = a->GetByteArrayElements(c, JNI_FALSE);

a->ReleaseByteArrayElements(c, bytebuf, 0);

return 0;

}

最后java直接使用方法名调用即可

作者: qq_34232027

链接: https://blog.csdn.net/qq_34232027/article/details/84494730

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

到此这篇关于“vs2013封装dll以及java调用”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持Go语言编程网!

相关文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值