世界因你而精彩  
          日歷
          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345
          統(tǒng)計(jì)
          • 隨筆 - 169
          • 文章 - 1
          • 評論 - 138
          • 引用 - 0

          導(dǎo)航

          常用鏈接

          留言簿(9)

          隨筆分類(163)

          隨筆檔案(154)

          文章檔案(1)

          新聞檔案(1)

          相冊

          收藏夾(1)

          個(gè)人雜雜

          友情鏈接

          自學(xué)考試

          資料搜索

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 359377
          • 排名 - 153

          最新評論

          閱讀排行榜

          評論排行榜

           
          java調(diào)用.dll
          編寫java程序如:javacall.java
          編譯java程序,如將javacall.java放到c:\test下(都可以,沒有固定) javac javacall.java
          (當(dāng)然你要設(shè)置環(huán)境變量:path
            設(shè)置:   
            我的電腦-屬性-高級-環(huán)境變量中,有PATH(大小寫都  
            可以)這個(gè)變量(沒有就自己新建立一個(gè))  
            變量名:PATH  
            變量值:javac等程序所在路徑.  
            例如我的JDK安裝在D:\JDK1.4中,那么我在D:\JDK1.4目錄  
            下可以搜索一下javac,得到它的位置:D:\JDK1.4\jdk\bin,  
            現(xiàn)在變量值就可以寫成  
            變量值:[   .;D:\JDK1.4\jdk\bin;   ]

          或者先設(shè)置用戶變量,系統(tǒng)變量再調(diào)用
          在桌面上右鍵點(diǎn)擊“我的電腦”

            然后屬性->高級->環(huán)境變量 ->系統(tǒng)變量(用戶變量也可以)->新建變量名里面輸入JAVA_HOME;  

            變量值里面輸入D:\JDK1.4\jdk\

            然后再新建一個(gè)CLASSPATH

            其值為:
                .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar (最前面的.;一定要寫)  
          )
          生成頭文件(javacall.h) javah -classpath "c:\test" javacall (記得要寫上路徑)
          建立新DLL工程如:mycalldll(如放在:C:\Documents and Settings\Administrator\桌面\71info\)
          將javacall.h復(fù)制到VC工程目錄中(如:C:\Documents and Settings\Administrator\桌面\71info\mycalldll\mycalldll\),然后編譯,如果編譯說找不到j(luò)ni.h文件,可以將jni.h復(fù)制到工程目錄中,還可將javacall.h文件中的#include <jni.h>改為#include "jni.h",
          將生成的.dll(如C:\Documents and Settings\Administrator\桌面\71info\mycalldll\mycalldll\Debug\mycalldll.dll)復(fù)制到C:\j2sdk1.4.2_05\bin則可在eclipse運(yùn)行了

          posted on 2006-07-03 14:09 張秀蘭 閱讀(6821) 評論(8)  編輯  收藏
          評論:
          • # re: java調(diào)用.dll程序   Posted @ 2006-07-07 21:47
            你好!
            我最近遇到這樣的問題,我開始在cmd下編譯一個(gè)java文件用來調(diào)用vc的dll,做法按網(wǎng)上一般步驟做的,生成的dll后和其class,.h還有dll都在同一個(gè)目錄下,然后我在cmd下運(yùn)行成功,然后我把這個(gè)類修改了一下,就是不讓此類中有main函數(shù),然后在放到我的工程里,開發(fā)工具是eclipse,但運(yùn)行總是報(bào)錯(cuò),錯(cuò)誤如下:
            Exception in thread "main" java.lang.UnsatisfiedLinkError: SendDESCommand
            at testDdl.sendSignal.SendDESCommand(Native Method)
            at testDdl.MainTest.main(MainTest.java:21)
            不知道這是怎么回事,還請你給予指教,謝先。
            因?yàn)樵赾md下運(yùn)行的時(shí)候沒有用包,在工程里這個(gè)java文件會(huì)有一個(gè)testDdl包,會(huì)不會(huì)是這個(gè)原因?
            有沒有其它方法可以解決?謝謝了先。
            回復(fù)的時(shí)候希望你能回復(fù)到我的信箱:jwzhang0404@yahoo.com.cn  回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序   Posted @ 2006-07-08 11:45
            能告訴我你的信箱么,我想通過郵件跟你聯(lián)系,我的是jwzhang0404@yahoo.com  回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序  張秀蘭 Posted @ 2006-07-10 09:38
            你把你的程序貼出來,看下,行不?  回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序  請教 Posted @ 2006-09-26 15:10
            你好,你這個(gè)方法是生成一個(gè)java可調(diào)用的dll吧!?!?能貼出代碼看看你是怎么調(diào)用dll的嗎?!
            謝謝  回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序  張秀蘭 Posted @ 2006-09-27 16:20
            不是的,是java調(diào)用一個(gè)如用delphi寫的.dll.
              回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序  張秀蘭 Posted @ 2006-09-27 16:27
            // mycalldll.cpp : 定義 DLL 的初始化例程。
            //

            #include "stdafx.h"
            #include "mycalldll.h"

            #ifdef _DEBUG
            #define new DEBUG_NEW
            #endif

            //
            // 注意!
            //
            // 如果此 DLL 動(dòng)態(tài)鏈接到 MFC
            // DLL,從此 DLL 導(dǎo)出并
            // 調(diào)入 MFC 的任何函數(shù)在函數(shù)的最前面
            // 都必須添加 AFX_MANAGE_STATE 宏。
            //
            // 例如:
            //
            // extern "C" BOOL PASCAL EXPORT ExportedFunction()
            // {
            // AFX_MANAGE_STATE(AfxGetStaticModuleState());
            // // 此處為普通函數(shù)體
            // }
            //
            // 此宏先于任何 MFC 調(diào)用
            // 出現(xiàn)在每個(gè)函數(shù)中十分重要。這意味著
            // 它必須作為函數(shù)中的第一個(gè)語句
            // 出現(xiàn),甚至先于所有對象變量聲明,
            // 這是因?yàn)樗鼈兊臉?gòu)造函數(shù)可能生成 MFC
            // DLL 調(diào)用。
            //
            // 有關(guān)其他詳細(xì)信息,
            // 請參閱 MFC 技術(shù)說明 33 和 58。
            //

            // CmycalldllApp

            BEGIN_MESSAGE_MAP(CmycalldllApp, CWinApp)
            END_MESSAGE_MAP()


            // CmycalldllApp 構(gòu)造

            CmycalldllApp::CmycalldllApp()
            {
            // TODO: 在此處添加構(gòu)造代碼,
            // 將所有重要的初始化放置在 InitInstance 中
            }


            // 唯一的一個(gè) CmycalldllApp 對象

            CmycalldllApp theApp;


            // CmycalldllApp 初始化

            BOOL CmycalldllApp::InitInstance()
            {
            CWinApp::InitInstance();

            return TRUE;
            }

            #include "javacall.h"
            JNIEXPORT jint JNICALL Java_javacall_shanfei (JNIEnv *, jclass, jint p)
            {
            int j = p*p;
            return j;
            }


            mycalldll.h

            /* DO NOT EDIT THIS FILE - it is machine generated */
            #include "jni.h"
            /* Header for class javacall */

            #ifndef _Included_javacall//java的head
            #define _Included_javacall
            #ifdef __cplusplus
            extern "C" {
            #endif
            /*
            * Class: javacall
            * Method: shanfei
            * Signature: (I)I
            */
            JNIEXPORT jint JNICALL Java_javacall_shanfei
            (JNIEnv *, jclass, jint);

            #ifdef __cplusplus
            }
            #endif
            #endif



            //java
            /**
            * @author zhangxl
            * 創(chuàng)建日期 2006-2-8
            */
            public class javacall
            {
            static
            {
            System.loadLibrary("Maxdll");
            }
            public native static String multiply(int i, int j, String st);
            public static void main(String[] args)
            {
            javacall jc = new javacall();
            int i = 4;
            int ii = 5;
            String stj;
            stj = jc.multiply(i, ii, "蘭test");
            System.out.println(i+" the shanfei result is :"+stj);
            }
            }  回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序  田克山 Posted @ 2007-06-25 00:44
            請問財(cái)客在線記帳軟件好用嗎?

            最近朋友向我推薦一款網(wǎng)上免費(fèi)在線記帳軟件——財(cái)客在線記帳網(wǎng):www.coko365.com

            我也不知道是否好用
            但是朋友卻覺得功能十分強(qiáng)大,安全性和穩(wěn)定性比較高!不知道這里是否有人使用過呢?
            可以發(fā)表一下看法嗎?  回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序  張秀蘭 Posted @ 2007-06-27 12:49
            財(cái)客在線記帳網(wǎng):www.coko365.com 這個(gè)我沒有用到.
            其實(shí)我較少使用就是了,只是偶爾有時(shí)間才會(huì)去用用.
            不過,這東西也不一定說功能有多強(qiáng)大就行,最主要是看他的安全性和您的實(shí)用性.
              回復(fù)  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
           
          Copyright © 張秀蘭 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 时尚| 浮山县| 湘阴县| 芷江| 团风县| 渝北区| 武清区| 苏尼特左旗| 宝鸡市| 紫金县| 保山市| 商水县| 台州市| 南陵县| 无极县| 茶陵县| 北宁市| 汉源县| 公主岭市| 都安| 石台县| 新密市| 乌兰浩特市| 类乌齐县| 罗田县| 达孜县| 正蓝旗| 大邑县| 牟定县| 襄汾县| 克什克腾旗| 广昌县| 新干县| 定南县| 淮阳县| 清水河县| 同江市| 盐城市| 民勤县| 仁化县| 泰州市|