日期:2014-05-20  浏览次数:20673 次

java如何调用c 的dll
我有一个人家写好的.h文件,我要自己生成java可以识别的dll,可是网上的例子我试验了,都没有成功,可否指教

------解决方案--------------------
1.建立java主程序,例如System.loadLibrary( "jwtain ");
2.用javah生成和主程序对应的头文件
3.修改java的本地安全策略,使得有权限访问本地的动态链接库

------解决方案--------------------
第一,创建一个java类,比如
public class demo{
public native int getNumber();
public native void setNumber(int value);
}

用javac编译成 demo.class
再用javah编译成 demo.h
写一个demo.cpp把demo.h的定义的原形方法实现
如果你电脑装了c++ Builder使用
1。bcc32 demo.cpp 生成demo.obj
2。bcc32 -WDR demo.obj
生成后的就是demo.dll,和类放在一起,在测试类里面写
static{
System.loadLibrary( "demo ");
|
public static void main(String args[]){
demo test = new demo();
test.setNumber(123);
system.out.println(test.getNumber());
}
程序输出如下: 123
如果不懂给我发邮件whz-accp@163.com
------解决方案--------------------
用jacob去操作dll文件,即可,jacob.jar文件网上可以下载
------解决方案--------------------
/////////////////////////////////////////////
转的高手帖
/////////////////////////////////////////////
从 Java 程序调用 C 或 C ++ 代码的过程由六个步骤组成。我们将在下面几页中深入讨论每个步骤,但还是先让我们迅速地浏览一下它们。


编写 Java 代码。我们将从编写 Java 类开始,这些类执行三个任务:声明将要调用的本机方法;装入包含本机代码的共享库;然后调用该本机方法。


编译 Java 代码。在使用 Java 类之前,必须成功地将它们编译成字节码。


创建 C/C++ 头文件。C/C++ 头文件将声明想要调用的本机函数说明。然后,这个头文件与 C/C++ 函数实现(请参阅步骤 4)一起来创建共享库(请参阅步骤 5)。


编写 C/C++ 代码。这一步实现 C 或 C++ 源代码文件中的函数。C/C++ 源文件必须包含步骤 3 中创建的头文件。


创建共享库文件。从步骤 4 中创建的 C 源代码文件来创建共享库文件。


运行 Java 程序。运行该代码,并查看它是否有用。我们还将讨论一些用于解决常见错误的技巧。



步骤 1:编写 Java 代码 第 3 页(共16 页)




我们从编写 Java 源代码文件开始,它将声明本机方法(或方法),装入包含本机代码的共享库,然后实际调用本机方法。

这里是名为 Sample1.java 的 Java 源代码文件的示例:


1. public class Sample1
2. {
3. public native int intMethod(int n);
4. public native boolean booleanMethod(boolean bool);
5. public native String stringMethod(String text);
6. public native int intArrayMethod(int[] intArray);
7.
8. public static void main(String[] args)
9. {
10. System.loadLibrary( "Sample1 ");
11. Sample1 sample = new Sample1();
12. int square = sample.intMethod(5);
13. boolean bool = sample.booleanMethod(true);
14. String text = sample.stringMethod( "JAVA ");
15. int sum = sample.intArrayMethod(
16. new int[]{1,1,2,3,5,8,13} );
17.
18. System.out.println( "intMethod: " + square);
19. System.out.println( "booleanMethod: " + bool);
20. System.out.println( "stringMethod: " + text);
21. System.out.println( "intArrayMethod: " + sum);
22. }
23. }



第二步接下来,我们需要将 Java 代码编译成字节码。完成这一步的方法之一是使用随 SDK 一起提供的 Java 编译器 javac。用来将 Java 代码编译成字节码的命令是: