⑴ java调用C#封装的DLL文件
先写一个java类,Java代码:
packagecom.ypoj.jni;
publicclassTestJNI{
publicnativeintadd(inta,intb);
static{
System.loadLibrary("CallCS");
}
publicstaticvoidmain(String[]args){
TestJNIt=newTestJNI();
System.out.println(t.add(10,20));
}
}
用javah生成的com_ypoj_jni_TestJNI.h,Cpp代码:
#include<jni.h>
#ifndef_Included_com_ypoj_jni_TestJNI
#define_Included_com_ypoj_jni_TestJNI
#ifdef__cplusplus
extern"C"{
#endif
JNIEXPORTjintJNICALLJava_com_ypoj_jni_TestJNI_add
(JNIEnv*,jobject,jint,jint);
#ifdef__cplusplus
}
#endif
#endif
接下来先完成C#的 Dll,C#代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceOJMain
{
publicclassOJEntrance
{
privateintresult;
publicintResult
{
get{returnresult+10;}
set{this.result=value;}
}
}
}
⑵ java中怎么编写dll文件........最好举个例子
你是指使用动态链接吗?这个可以用java中的反射机制做到,但是java中是没有动态链接库这种东西的。如果你指的是java调用本地dll的话,是使用jni技术,dll也不是java编写的。总是java是不可能编译成为dll。有一种这种的方案,就是将java编译的文件转换为c#的,微软有相应的工具,可以搜到,然后就可以打包成为dll了。
⑶ Java如何将dll文件打包到jar中
这个问题是由于 类加载器 造成的
ClassLoader
你对ClassLoader了解么?
你对 boot ClassLoader了解么?
如过不清楚的话,请查看一下 Java类加载机制.
⑷ Java调用现有的一个C++封装好的DLL库中的一个方法(做到生成自己dll那一步了)
这个问题有点麻烦的地方是你的函数有两个传指针的输出参数。
如果不是非常在意JNI调用的额外开销的话,你可以试试JNA,https://github.com/twall/jna#readme
⑸ 请问怎样把JAVA封装成dll
java只能打成jar包
⑹ java加载dll文件
java没法直接读,只能先用C++写一个读取该dll内容的过程,按JNI规范封装成dll,然后java加载这个dll执行其中的函数。
⑺ java可以生成.dll动态链接库么
不可以 但是可以使用 关键词 jni
⑻ java怎样把dll文件一起打包到jar 或者成exe
dll打包,嗯,只要把dll包放到开发目录下,应该就可以打包dll了,记得修改引用。