国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用VJ++6.0的J/Direct調用DLL

2019-11-18 15:22:08
字體:
來源:轉載
供稿:網友

  北京信息工程學院軟件工程室
馬文曉
---- Microsoft 虛擬機提供了很多方式,答應程序員在java中調用由其他語言實現的稱為native的方法.可選以下某一調用方式:J/Direct,ActiveX/JavaBeans集成,RNI,低級Java/COM 集成,它們各有優劣,詳情見MSDN6.0中"Mixng Java and Native Code"文.調用Win32或用戶API的最簡方式是J/Direct.下面舉兩例說明,可用VJ++6.0的Console application建立項目, 用IE5.0實現虛擬機,在DOS窗口下用Windows95的Jview運行.class.

---- 例1.調用USER32.dll中的MessageBox函數:

public class Class1
{/** @dll.import("c:windowssystem USER32")
*/PRivate static native int MessageBox
(int hwndOwner, String text, String title,int Style);
public static void main(String args[])
{MessageBox(0,"USER32","No Parent Window",0);}}
例中,用/** @dll.import("c:windowssystemUSER32")
*/指明dll,可用DUMPBIN查看dll的輸出函數,
用native聲明JAVA方MessageBox原型,
native方函數原型可查相應聲明.
JAVA與native方函數原型中某些數據類型對照是:

Java方簡單數據類型
Native方簡單數據類型
Byte
BYTE or CHAR
Short
SHORT or Word
Int
INT, UINT, LONG, ULONG, or DWORD
Char
TCHAR
Long
__int64
Float
Float
Double
Double
Boolean
BOOL
String
LPCTSTR
StringBuffer
LPTSTR
Void
VOID

---- 例2.調用用戶DLL中的rev_string,將字符串反序.先用VC6.0的AppWizard, 在c:mydll下,建立win32 DLL項目,進一步選擇"A Simple DLL Project" 類型.在.cpp文件中添加

#include < string.h >
__declspec(dlleXPort) void __cdecl rev_string
(LPCTSTR src_str,LPTSTR result_str){
strcpy(result_str,_strrev((char*)src_str));}

---- 這里LPCTSTR,LPTSTR分別對應JAVA的String和StringBuffer,只能用帶空間的StringBuffer接受結果串.鏈接前,必須在Project- >Settings...- >Link的Project Options窗口內添加"/EXPORT:rev_string". 選擇Release目標后,將在c:mydll elease下將生成mydll.dll.

JAVA方的程序是
public class Class1
{ /** @dll.import("c:/mydll/release/mydll") */
private static native int rev_string
(String str, StringBuffer result_str);
public static void main(String args[])
{
String str="xyz";StringBuffer
result_str=new StringBuffer(str.length()+1);
rev_string (str,result_str);
System.out.println(result_str); }}
運行后,將在DOS窗口輸出"zyx".

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湘潭县| 双城市| 樟树市| 呼伦贝尔市| 舟山市| 兴国县| 高碑店市| 新泰市| 威宁| 廊坊市| 保康县| 贵州省| 安庆市| 原阳县| 全椒县| 雷山县| 喀什市| 本溪市| 盱眙县| 安陆市| 柯坪县| 乐都县| 湟源县| 鹿邑县| 开化县| 广丰县| 敖汉旗| 滨海县| 湄潭县| 长寿区| 石城县| 涿州市| 萨嘎县| 枣阳市| 岳阳县| 喀什市| 东平县| 奇台县| 阳朔县| 公主岭市| 桂林市|