QString的字符串是unicode文本。你讀取的時候直接用StringBuffer慢慢讀取直到字符串結(jié)尾,轉(zhuǎn)碼,然后構(gòu)造String,然后再讀int32,重復(fù)操作

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比龍圩網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式龍圩網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋龍圩地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。
1、使用JNI
2、JNative簡單示例
import org.xvolks.jnative.JNative;
import org.xvolks.jnative.exceptions.NativeException;
import org.xvolks.jnative.misc.basicStructures.AbstractBasicData;
import org.xvolks.jnative.pointers.Pointer;
import org.xvolks.jnative.pointers.memory.MemoryBlockFactory;
public class SystemTime extends AbstractBasicDataSystemTime {
public short wYear;
public short wMonth;
public short wDayOfWeek;
public short wDay;
public short wHour;
public short wMinute;
public short wSecond;
public short wMilliseconds;
public Pointer createPointer() throws NativeException {
pointer = new Pointer(MemoryBlockFactory.createMemoryBlock(getSizeOf()));
return pointer;
}
public int getSizeOf() {
return 8 * 2;
}
public SystemTime getValueFromPointer() throws NativeException {
wYear = getNextShort();
wMonth = getNextShort();
wDayOfWeek = getNextShort();
wDay = getNextShort();
wHour = getNextShort();
wMinute = getNextShort();
wSecond = getNextShort();
wMilliseconds = getNextShort();
return this;
}
public SystemTime() throws NativeException {
super(null);
createPointer();
mValue = this;
}
@Override
public String toString() {
return wYear + "/" + wMonth + "/" + wDay + " at " + wHour + ":" + wMinute + ":" + wSecond + ":" + wMilliseconds;
}
public static SystemTime GetSystemTime() throws NativeException, IllegalAccessException {
JNative nGetSystemTime = new JNative("Kernel32", "GetSystemTime");
SystemTime systemTime = new SystemTime();
nGetSystemTime.setParameter(0, systemTime.getPointer());
nGetSystemTime.invoke();
return systemTime.getValueFromPointer();
}
public static void main(String[] args) throws NativeException, IllegalAccessException {
System.err.println(GetSystemTime());
}
}
這個就是簡單示例,調(diào)用系統(tǒng)的dll和調(diào)用qt的dll有區(qū)別嗎?qt也應(yīng)該是export出來入口點(diǎn)吧,原理上應(yīng)該一樣的。
可以使用強(qiáng)制轉(zhuǎn)換來語句來實(shí)現(xiàn)數(shù)據(jù)類型從Long類型轉(zhuǎn)換成Integer或int類型。以下舉例說明具體步驟:1.聲明一個數(shù)據(jù)類型為long的變量并初始化:long i = 10;
2.聲明一個數(shù)據(jù)類型為整型(integer)變量:int j;
3.使用強(qiáng)制轉(zhuǎn)換符“()”轉(zhuǎn)換,j =(int)(i )即可實(shí)現(xiàn)轉(zhuǎn)換。
代碼如下圖:
拓展資料
Java中有六種基本數(shù)據(jù)類型:byte(字節(jié))型、short(短整)型、int(integer)整型、long(長整)型、float(單精度)浮點(diǎn)型、double(雙精度)浮點(diǎn)型。數(shù)據(jù)精度從字節(jié)型、短整型、整型、長整型、單精度浮點(diǎn)型、雙精度浮點(diǎn)型依次升高。數(shù)據(jù)類型從低精度到高精度系統(tǒng)會自動轉(zhuǎn)換(即隱式轉(zhuǎn)換),從高精度到低精度需要強(qiáng)制轉(zhuǎn)換(即顯示轉(zhuǎn)換)。
可以把普通的Java程序做成真正的exe,也就是單一個exe就可以在沒有安裝JVM的機(jī)器上運(yùn)行。這樣的工具常見的有JET和gcj.前者是收費(fèi)的,而且做出來的exe還是需要一堆dll。推薦使用gcj.他有windows和Linux版,直接下載zip包,不需要安裝,里面有不少例子,一些build的批處理文件。從原理來說gcj自己實(shí)現(xiàn)了JVM規(guī)范,也就是你編寫一個HelloWorld.java,其中的main方法為System.out.println("foo");
當(dāng)使用gcj把它做成exe(大約2M),運(yùn)行這個exe時,會啟動里面的一個小型jvm,在這上面跑HelloWorld。
其實(shí),把Java做成純exe實(shí)在是吃力不討好,有很多限制,文件又大。
我比較傾向另幾種做法:
. 使用InstallAnywhere等工具,制作一個exe的安裝包
用戶可以選擇使用他機(jī)器上的JRE或是這個安裝包內(nèi)的JRE來運(yùn)行程序
這是很常見的一種做法,如JBuilder就是這么做的。
這樣的好處是不要求對方機(jī)器上裝有JRE,而且你原來的程序不需要任何改動。
InstallAnywhere中一個壓縮的JRE大概是8M。
. 制作成可執(zhí)行的jar,也就是在META-INF的MANIFEST文件制定Main-Class
可以通過命令行java -jar jarfile.jar來執(zhí)行,windows默認(rèn)的把*.jar使用javaw -jar打開,所以有些機(jī)器上可以直接雙擊jar運(yùn)行。
. 制作偽exe,其實(shí)和上一種做法是一樣的,只不過做成exe,調(diào)用系統(tǒng)的java.exe來運(yùn)行它,這樣的工具有nativeJ,exe4j等
其實(shí)Java不像VB,Delphi只是一個語言,而是一個平臺。
jar是最常用的部署單元,做成exe沒什么意思。
一、exe4j。
說明:exe4j可以將Jar文件制作成exe文件,但需jre支持,也可將Jar文件放在外面。
軟件性質(zhì):共享軟件
下載地址:
二、JBuilder。
說明:新版本的JBuilder可以直接把工程制作成各系統(tǒng)的可執(zhí)行文件,包括Windows系統(tǒng)。
軟件性質(zhì):商業(yè)軟件
下載地址:略。我是從eMule下載的。
三、NativeJ。
說明:與exe4j功能類似。
軟件性質(zhì):共享軟件
下載地址:
四、Excelsior JET。
說明:可以直接將Java類文件制作成exe文件,除AWT和Swing及第三方圖形接口外可不需jre支持(Java5.0不行)。
軟件性質(zhì):共享軟件
下載地址:
五、jshrink。
說明:可將Jar文件打包進(jìn)exe文件。同時具有混淆功能(這才是它的主要功能)。
軟件性質(zhì):共享軟件
下載地址:
六、InstallAnywhere。
說明:打包工具,對Java打包最好用。可打包成各操作系統(tǒng)運(yùn)行包。包括Windows系統(tǒng)。
軟件性質(zhì):商業(yè)軟件。
下載地址:
七、InstallShieldX。
說明:與InstallAnywhere類似,但比InstallAnywhere功能強(qiáng)大。相對的,比較復(fù)雜,不易上手,我現(xiàn)在還沒學(xué)會。
軟件性質(zhì):商業(yè)軟件。
下載地址:
【Java開源打包工具】
IzPack 是一個 Java 安裝程序制作工具,能夠制作一些簡單的安裝程序。制作出來的安裝程序能在 Unix-like, MacOS X, Windows 等系統(tǒng)平臺上運(yùn)行。
使用JSmooth將做好的JAR包裝成EXE。
launch4j是Java應(yīng)用程序的Windows本地可執(zhí)行文件 (.exe) 封裝器。提供了本地彈出屏幕,應(yīng)用程序圖標(biāo),JRE搜索或使用綁定的JRE,啟動失敗反饋,傳遞命令行參數(shù),ant腳本。
VAInstall是多平臺的安裝程序。你要包裝起來的軟件可以是可執(zhí)行的 java class, Windows .EXE, Linux 可執(zhí)行檔,或者是 UNIX shell 檔案。使用者可以選擇四種安裝的介面,graphic, xtra, text 或是 ansi。VAInstall 只需要很少的空間,他不會使用任何大的暫存檔案,而且還可以很容易使用反安裝功能。
Toolshed是一個既小又簡單的JAVA安裝制作工具。
AntInstaller通過XML文件定義UI,用Ant做后臺。所以ANT所能做的事情AntInstaller同樣也勝任。
FreeInstaller能夠把JAVA程序打包成多種平臺下的應(yīng)用程序比如UNIX, LINUX 和 Windows NT.
這個工具利用 ANT 來制作在 Windows, MacOS X, Unix 平臺上可執(zhí)行的文件,比如 exe,zip,jar。ROXES ANT Tasks 基于 GPL 發(fā)布。
Mini Installer是用來構(gòu)建JAVA安裝程序一個簡單類包。整個過程以腳本為驅(qū)動,最后結(jié)果是一個獨(dú)特的JAR文件。用戶可以通過雙擊來執(zhí)行一個類似向?qū)У陌惭b過程。
Antigen (Ant Installer Generator)這個工具結(jié)合一個ANT構(gòu)建腳本與一個GUI來把Java文件打包成可執(zhí)行的Jar文件。它的主要目的是從Ant腳本創(chuàng)造一個強(qiáng)大的圖形安裝工具。
Packlet是一個針對Java的簡單安裝工具。一個Packlet類似于一個zip或tgz文件。它把應(yīng)用程序打包成一個單一的可分解的壓縮文件。Packlet文件能夠在任何有安裝Java 2運(yùn)行環(huán)境的機(jī)器上運(yùn)行。
Java Service Wrapper可以把Java應(yīng)用程序安裝成一個Windows NT服務(wù)或Unix Daemon.它同時還為應(yīng)用程序提供日記功能,靈活的配置,可靠的運(yùn)行性能,按需求重新啟動,簡化應(yīng)用程序的安裝等,
JPackIt可以把Java工程打包成一個可執(zhí)行的包(如:jar,class或exe).包括所有Java應(yīng)用程序資源如:代碼,圖片,屬性文件和被引用的第三方包.
One-JAR可以解決如何把一個依賴于多個其它jar文件的應(yīng)用程序發(fā)布成一個單一的可執(zhí)行Jar文件.它使用一個可定制的類裝載器(classloader)來打開在主Jar中的Jar文件包.
Autojar幫助從不同的inputs(如:自身classes,外部文檔等)制作最小的Jar文件。它從一個或多個給定的classes開始,依據(jù)字節(jié)碼(bytecode)遞歸搜索相關(guān)聯(lián)的classes,然后從input文檔中提取這些Classes,并把它們拷貝到output中. 最終的文檔將只包含真正需要的classes. 因而能夠保持applet的大小并降低applet的加載時間或者讓應(yīng)用程序獨(dú)立于第三方類庫。
MJAR(Managed Jar Framework)Java軟件分發(fā)/打包框架。它允許在相同VM內(nèi)并行部署classloader分離的應(yīng)用程序。MJAR使用Spring框架來管理內(nèi)部組件。
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:
新聞標(biāo)題:java代碼能轉(zhuǎn)成qt嘛 java代碼直接轉(zhuǎn)成c語言
URL分享:http://www.yijiale78.com/article10/ddjgsdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、Google、商城網(wǎng)站、面包屑導(dǎo)航、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)