如何以 JAVA call 一個現有的 dll 檔?【转】

如何以 JAVA call 一個現有的 dll 檔?

如何以 JAVA call 一個現成的 dll 檔?

http://ehome.hifly.to/showthread.php?threadid=750

版主大大您好,小弟又有問題要向您討教。
問題:
老闆拿來一支 dll 檔,是控制印表機用的。
但附的 sample 是以 VB6.0 所寫的,程式宣告方式:
Public Declare Function UTL_T28_Enable Lib "utlt" () As Long
Public Declare Function UTL_T28_Disable Lib "utlt" () As Long
要用直接用:
dim RESPON as Long
RESPON = UTL_T28_Enable
RESPON = UTL_T28_Disable

現在該如何以 java call 這個 dll 檔呢?
小弟看書及找資料,發現:
1、寫一支 java 程式,編譯成 class 檔,例如:
class HelloWorld
{
public native void displayHelloWorld();
static {System.loadLibrary("hello");}
public static void main(String[] args)
{new HelloWorld().displayHelloWorld();}
}

2、用 javah -jni HelloWorld ,生成 HelloWorld.h 檔
#include <jni.h>
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld
(JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

3、寫 C 程式,method name 要與 java 的 method name 相對應,編譯成 dll 檔
#include <jni.h>
#include "HelloWorld.h"
#include <stdio.h>

JNIEXPORT void JNICALL
Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello world!/n");
return;
}

一般的書都介紹到此。
可是如果 dll 檔像小弟所遇到的,它已經寫好了,也沒有包括下列三行時:
#include <jni.h>
#include "HelloWorld.h"
#include <stdio.h>
結果是沒辦法以 java call 它,即使 method name 相對應。
不知版主大大能不能給小弟一點建議,謝謝

你可能感兴趣的:(java,function,String,Class,dll,vb)