新手问题之五:JAVA中怎样调用WINDOWS的DLL中的函数?

lwg7603 2002-07-17 08:11:21
如题?
...全文
51 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunpengjie 2002-07-17
  • 打赏
  • 举报
回复
其实java调用dll是和c分不开的,下面给出一个java调用windows中dll的函数的例子。程序如下

hellodll.java
public class hellodll
{
static
{
System.loadLibrary("sunpengjie");
}
public native static String helloget();
public native static void helloset(int helloword);
public static void main(String[] args)
{
hellodll hello = new hellodll();
hello.helloset(1);
System.out.println(hello.helloget());
}
}
用javac hellodll.java编译它,会生成hellodll.class
再用javah hellodll,则会在当前目录下生成hellodll.h

hellodll.cpp文件

#include "hellodll.h"
String str = "";
//在产生的hellodll.h中会看到两个函数的原型
JNIEXPORT ? JNICALL Java_hellodll_helloget (JNIEnv *, jclass)
{
return str;
}
JNIEXPORT void JNICALL Java_hellodll_helloset (JNIEnv *, jclass, jint j)
{
if (j>0)
{ str = "This is a helloword Program!!!!!!" ;}
if(j<=0)
{ str = "This is not a helloword Program!!!!!!";}
}

编译连接成库文件,在WINDOWS下生成sunpengjie.dll。把sunpengjie.dll拷贝到hellodll.class的目录下,java hellodll就可以运行了。



lexus 2002-07-17
  • 打赏
  • 举报
回复
http://www.csdn.net/Expert/TopicView1.asp?id=879129
lwg7603 2002-07-17
  • 打赏
  • 举报
回复
能给一个详细的例子吗??
G-old 2002-07-17
  • 打赏
  • 举报
回复
System.loadLibrary("Library DLL Name");

public native void method();
javapro 2002-07-17
  • 打赏
  • 举报
回复
Thinking in java: JNI

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧