資源描述:
《Java調(diào)用動態(tài)鏈接庫通用方法.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Java調(diào)用動態(tài)鏈接庫(*.DLL)1.*.dll文件用一般使用何種語言何種軟件編寫?*.dll文件一般用C語言、VC++、Delphi、C#等語言和相應(yīng)的開發(fā)工具編寫。如果要考慮廣泛的兼容,一般使用VC++或者C語言編寫,可供java、VC、Delphi、PB、VB、C#等語言調(diào)用2.Java如何調(diào)用C語言已經(jīng)編寫的DLL?以D盤下的LEDSender2014.dll文件為例第一步:定義一個(gè)接口,繼承DLL的功能類publicinterfaceVsLedDriverextendsLibrary{VsLedDriverINSTANCE=(VsLedD
2、river)Native.loadLibrary("D:\LEDSender2014",VsLedDriver.class);//以下為接口VsLedDriver繼承來自Library的各種方法//態(tài)鏈接庫初始化voidLED_Startup();//填寫網(wǎng)絡(luò)通訊參數(shù),供發(fā)送時(shí)使用intLED_UDP_SenderParam_ByReportName(intindex,intlocalport,StringremoteIP);//獲得某個(gè)在線控制卡的上報(bào)控制卡名稱StringLED_Report_GetOnlineItemName(intserve
3、rindex,intitemindex);}其中,<1>Library是LEDSender2014.dll文件中的功能函數(shù)<2>"D:\LEDSender2014"是絕對路徑,也可以是相當(dāng)路徑。如果把LEDSender2014.dll文件放到Java項(xiàng)目目錄下,當(dāng)前路徑可以寫為"LEDSender2014"<3>java和C語言的數(shù)據(jù)類型的對應(yīng)關(guān)系:unsignedchar用char;unsignedint用int;unsignedchar*、和unsignedint*這兩個(gè)是指針,第一個(gè)是取1位地址內(nèi)容的,第二個(gè)根據(jù)系統(tǒng)而定,一般是取4位地址值的
4、,用java的String對應(yīng)第二步:在其他類中直接調(diào)用接口中的方法publicclassLEDSendServer{publicsynchronizedvoidsend(Stringtitle,StringledIP,Stringpath,intlocalport){VsLedDriver.INSTANCE.LED_Startup();//動態(tài)鏈接庫初始化,單獨(dú)啟動或者做成EXE需要開啟此方法ints=VsLedDriver.INSTANCE.LED_UDP_SenderParam(0,localport,ledIP);//加載LED驅(qū)動,并與LE
5、D建立連接}}