<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    聚合 管理  

    Blog Stats

    News

    我使用新博客啦:
    http://www.linjunhai.com/
    大家到我的新博客上看看吧!

    隨筆分類(28)

    文章分類(4)

    隨筆檔案(53)

    文章檔案(4)

    相冊(cè)

    相關(guān)鏈接


    林俊海的博客

    超級(jí)大菜鳥(niǎo),每天要自強(qiáng)!

    現(xiàn)在難得來(lái)看一下自己的博客,今天好不容易找了個(gè)代理,順便再繼續(xù)之前的話題,就是 JAVA 與 Delphi 的交互了.

    在上一篇中,我們說(shuō)了如何用 Java 調(diào)用 Delphi 程序的一個(gè)方法,今天我們?cè)偕钊胍稽c(diǎn),就是怎樣提交參數(shù)個(gè) Delphi 的方法,以動(dòng)態(tài)的控制 Delphi 的方法.
    下面,我們切入正題.

    首先,我們定義如下的 Java 類:

    //----------------------------------------------------------------------------------------------------------
    package alvinJNI;

    class HelloWorld {
    ??????? static {
    ??????????????? System.loadLibrary("DelphiAction");
    ??????? }

    ??????? public native void printText(String str);

    ??????? public static void main(String[] args) {
    ??????????????? HelloWorld hw = new HelloWorld();
    ??????????????? hw.printText("您好!看到效果了吧。");
    ??????? }

    }
    //----------------------------------------------------------------------------------------------------------

    我們?cè)傧裆洗我粯釉?Delphi 中建立 DLL 工程,寫(xiě)下面的代碼(有注釋):

    //----------------------------------------------------------------------------------------------------------
    library DelphiAction;

    uses
    ? JNI;

    //這一次我們要寫(xiě)的這個(gè)方法因?yàn)橐邮找粋€(gè) Java 傳過(guò)來(lái)的參數(shù),所以我們來(lái)說(shuō)一下這個(gè)參數(shù)列表的問(wèn)題
    //參數(shù)列表中的第一個(gè)參數(shù) PEnv 類型為 PJNIEnv, 它是 JNI.pas中定義的類型,我們好多工作要通過(guò)它來(lái)實(shí)現(xiàn),可以把它看成是一個(gè)幫你的程序與 Java 溝通的橋梁.
    //參數(shù)列表中的第一個(gè)參數(shù) obj 類型為 JObject.前面這兩個(gè)參數(shù)是固定的,這第二個(gè)參數(shù)暫時(shí)我們還不會(huì)用到.
    //今天,我們還要給這個(gè)方法多加一個(gè)參數(shù),用來(lái)接受 Java 傳過(guò)來(lái)的參數(shù). str: JString

    procedure Java_alvinJNI_HelloWorld_printText(PEnv: PJNIEnv; Obj: JObject; str: JString); stdcall;
    //這回我們需要用到一個(gè) TJNIEnv 對(duì)象,我們來(lái)聲明
    var
    ? JVM: TJNIEnv;
    ? tmpStr: String;

    begin
    ? //實(shí)例化 JVM, 這個(gè)對(duì)象可以看成是 Java 的虛擬機(jī).(自己的理解)
    ? JVM := TJNIEnv.Create(PEnv);

    ? //參數(shù)提交過(guò)來(lái)的字符串,實(shí)際上是一個(gè) JString 對(duì)象,我們?cè)谶@里要用 JVM 來(lái)轉(zhuǎn)化它.
    ? //我們調(diào)用 JVM 的 UnicodeJStringToString 函數(shù)就可以實(shí)現(xiàn) JString 到 String 的轉(zhuǎn)化了.
    ? tmpStr := JVM.UnicodeJStringToString(str);

    ? Writeln(tmpStr);

    ? //我們使用完 JVM 后,要將其釋放.
    ? JVM.Free;
    end;

    exports
    ??????? Java_alvinJNI_HelloWorld_printText; //為函數(shù)做引出聲明,這樣才能真正的被調(diào)用到
    end.
    //----------------------------------------------------------------------------------------------------------

    我們現(xiàn)在就可以生成 DelphiAction.dll 將其放在 Java 工程目錄下, 再執(zhí)行 alvinJNI.HelloWorld 看看效果了.

    好了,我們今天主要就是實(shí)現(xiàn)了一下,如何在 Java 調(diào)用 Delphi 的方法時(shí),給其提交一個(gè)參數(shù).
    是不是很爽?

    今天就先說(shuō)到這里.接下來(lái),我會(huì)盡快的再貼上一些文章

    posted on 2006-12-01 21:30 林俊海 閱讀(422) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA天地
    主站蜘蛛池模板: 中文字幕一区二区免费| 成人a毛片视频免费看| 99re6免费视频| 亚洲电影一区二区三区| 成人A毛片免费观看网站| 亚洲深深色噜噜狠狠爱网站| 视频免费1区二区三区| av在线亚洲欧洲日产一区二区| 无码精品人妻一区二区三区免费 | 久久av免费天堂小草播放| 亚洲国产成人爱av在线播放| 一个人看的免费高清视频日本| 亚洲精品NV久久久久久久久久| 国产大片免费天天看| 国产亚洲一区二区手机在线观看 | 亚洲产国偷V产偷V自拍色戒 | 怡红院免费的全部视频| 亚洲成AV人片在线观看ww| 67194成手机免费观看| 国产精品高清视亚洲精品| 国产精品美女自在线观看免费| 一二三四在线观看免费中文在线观看| 亚洲成a人片在线播放| 在线涩涩免费观看国产精品| 亚洲视频免费播放| 成人永久免费福利视频网站| 成人嫩草影院免费观看| 亚洲国产老鸭窝一区二区三区| 免费中文熟妇在线影片 | 免费无码黄十八禁网站在线观看| 亚洲欧美国产国产综合一区| 伊在人亚洲香蕉精品区麻豆| 青青操在线免费观看| 亚洲人成电影在线观看网| 成人亚洲网站www在线观看| 99久久国产免费-99久久国产免费 99久久国产免费中文无字幕 | 亚洲成色WWW久久网站| 成全高清视频免费观看| jizz免费观看视频| 亚洲av永久无码精品天堂久久| 亚洲国产综合人成综合网站|