在JAVA里面如何调用DLL文件 用jni。就是java 自然语言,你可以看看《java编程思想》,里面有讲解的。主要是用vc做一个中间dll 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我现在很忙,没时间给你详细讲,有问题给我发mail:[email protected] 是的,不过要按照JNI的一套写函数。 只能使用JNI来实现,给一个我写的小例子,仅供参考:这是一个打印hello world的例子,打印由c的printf来完成package mytest;public class HelloNative{ //将要调用的打印方法声明为native,且直接加分号即可 public native static void greeting(); static { //这个dll是有打印函数的c编译成的 //系统在程序开始是导入它,这样才能成功 System.loadLibrary("newPrintfDll"); }}//主方法类package mytest;import mytest.*;public class HelloNativeTest{ public static void main(String[] args) { HelloNative.greeting(); }}成功!注意:首先,你要将HelloNative编译成class文件,然后使用javah编译该class文件,生成.h文件(要注意路径,如果有包,要退到包名上一级来编译.h文件,否则即使dll调用成功,也会显示找不到greeting方法)将该.h文件中的关键代码粘帖到cpp文件中(有vc向导生成一个dll的文件模版),关键代码:JNIEXPORT void JNICALL Java_mytest_HelloNative_greeting (JNIEnv* env, jclass cl)//稍做了修改{ printf("asdfasdf");}编译成dll文件,放到如c:\winnt\system32下,你的.h文件也要放到相应目录(在编译dll时放到vc98\include下,还有jni.h和jni_md.h也要找到它们放入),这样就基本完成了,具体细节我无法讲得太仔细建议去看参考资料.谢谢. java 自然语言汗……是哪本书上翻译的? jni 方法,具体的你可以到www.IBM.com/cn/去找一下那里有一套完整介绍JNI的书 调用com组件可以吗,用http://users.rcn.com/danadler/javacom/index.html 今天面试一个公司面试题,上来大家参考下 用Jfreechart的时候,折线3D图,如果只有一个点的话,这个点就不显示!有什么办法让他显示出来吗?(有源码),可以直接运行出效果啊 java编写的数据库类 急用 大家帮忙啊 如何在JApplet里画点,并显示出来 大虾们,小弟现在想写一个程序,是有关于发送TCP数据包的,但不知道怎么写,没思路!请帮忙! 在抛一次:equals的问题 请问java中能不能获得系统中所有的ODBC名称? 如何实现多维数组中各数据项的索引 初级问题---多谢您的帮忙 哈哈,刚学Java,问的问题可能幼稚啊 一个很好解决的问题 有分可那 *考过scjp的给个意见*
这是一个打印hello world的例子,打印由c的printf来完成package mytest;public class HelloNative
{
//将要调用的打印方法声明为native,且直接加分号即可
public native static void greeting();
static
{
//这个dll是有打印函数的c编译成的
//系统在程序开始是导入它,这样才能成功
System.loadLibrary("newPrintfDll");
}
}//主方法类
package mytest;import mytest.*;public class HelloNativeTest
{
public static void main(String[] args)
{
HelloNative.greeting();
}
}成功!
注意:首先,你要将HelloNative编译成class文件,然后使用javah编译该class文件,生成.h文件(要注意路径,如果有包,要退到包名上一级来编译.h文件,否则即使dll调用成功,也会显示找不到greeting方法)
将该.h文件中的关键代码粘帖到cpp文件中(有vc向导生成一个dll的文件模版),关键代码:
JNIEXPORT void JNICALL Java_mytest_HelloNative_greeting
(JNIEnv* env, jclass cl)//稍做了修改
{
printf("asdfasdf");
}
编译成dll文件,放到如c:\winnt\system32下,你的.h文件也要放到相应目录(在编译dll时放到vc98\include下,还有jni.h和jni_md.h也要找到它们放入),这样就基本完成了,具体细节我无法讲得太仔细建议去看参考资料.谢谢.