史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   請教一下包裝DLL的問題.... (http://forum.slime.com.tw/thread153771.html)

luka 2005-07-21 05:14 PM

請教一下JNI的問題....
 
最近在做專題,整個企劃是用Java來寫
廠商的DLL是VC、VB所以是一定要用JNI來控制
目前卡在驅動的API有個char型態的指標
可是要怎在JNI裡用指標我就不會了><
(其實對JAVA和C++都是一知半解 :dcft689kj )
API指令如下
語法:

int Rfid_Init(int readerid,char* comportnum )
c++實作方法我是寫成像下面這樣
語法:

JNIEXPORT jint JNICALL Java_jni_1java_Rfid_1Init
  (JNIEnv *, jobject, jint readerid, jchar comportnum)
{

        int initvalue = Rfid_Init(readerid,comportnum );<==這行跑不過去
        if(initvalue==0)
                cout << "成功連接";
        else
                cout << "失敗";
}

可是在編譯時會出現說"cannot convert parameter 2 from 'unsigned short' to 'char *'"
好像是說第二個傳入值不是char指標.......
原因我想是出在我在宣告JNI介面時是用成
public native int Rfid_Init(int readerid,char comportnum );
把指標給移掉,才能通過Java的編譯
不過變成C++這邊在傳值時就會有問題
廠商給的範例程式又加了太多的介面程式碼
看不出來他那部份是怎傳入的.......
廠商範例如下
http://www2.nkfust.edu.tw/~u9114081/testdll.rar
主程式是testdllDlg.cpp
還請各位前輩幫忙給個方向>< ~~~~感謝

mini 2005-07-22 08:45 AM

這不知道能否做參考
http://dev2dev.bea.com.cn/bbs/thread...ssageID=116497

Java 用 String
C 引用 #include "javactransfer.h",就使用 jstring

因為自己沒碰過 Java 所以是否正確就不得而知

luka 2005-07-24 02:49 AM

感謝回應~~
我發覺看廠商範例寫只會讓我頭更痛
所以目前是全部自己重寫
主要是照這網址的內容在做
http://cle.linux.org.tw/forum/viewforum.php?f=3
這版本的寫法我覺的好像比較好些
是先將傳入值全部以LPSTR型態傳入
再依各方法所需來轉換型態~~~
不過網上也有別的寫法就是了只是寫的怪怪的,有的地方也沒說清楚怎來的
就暫時不採用^^a


所有時間均為台北時間。現在的時間是 11:20 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1