㈠ 易語言編譯器把易語言代碼編譯成了什麼
最終肯定編譯成機器碼了。
用查殼工具發現易語言生成的PE文件編譯器為VC6.0,個人推斷易語言可能是在VC上架了一層,最終可能仍然是經由VC的編譯器進行編譯,可能是從易語言到C++,到匯編,再到機器碼,僅僅是個人推斷,僅供參考
㈡ 易語言中 編譯器 什麼意思
生成成軟體的一個文件,如果沒了編譯器就只是源碼不可以弄成軟體
㈢ 易語言怎麼製作編譯器
易語言製作的軟體不能編譯出新的軟體,你可以用易語言製作兩個軟體,用一個軟體輸出另一個來達到目的,目前易語言製作的軟體生成器就是這個原理
㈣ 易語言的編譯器是重新開發的嗎 ,還是說只是把中文代碼替換下而已呢
樓主,您好!易語言的編譯器編譯時不是重新開發。
簡單講,易語言的編譯器功能就是將易語言程序翻譯為「機器語言(低級語言)」的程序。一般編譯出的源程序僅僅是源代碼,並不是操作系統可直接運行的程序,必須經過編譯才能夠稱為操作系統可執行程序。編譯器可以生成用來在與編譯器本身所在的計算機和操作系統(平台)相同的環境下運行的目標代碼,這種編譯器又叫做「本地」編譯器。另外,編譯器也可以生成用來在其它平台上運行的目標代碼,這種編譯器又叫做交叉編譯器。
㈤ 易語言怎麼調用c語言編譯器來運行程序代碼 ! 急!謝謝回答者!說詳細些
如果易語言編譯器容許您,那麼就是可以的,例如keilc51編譯器和常用調試arm裸機程序,是可以在c語言語句中加入匯編語言。
由於本人不了解易語言,無法確定其編譯器是否可以編譯c,但估計是不行。
那麼說回來,如果這樣,程序就沒法寫了。實際大家是怎麼做的呢。通常做法是將c語言程序編譯成dll文件,也就是我們所謂的庫文件。然後就可以實現調用了。這種文件我們經常會在常見的程序中看到,原因就是代碼保密性好,並且更新很方便,關鍵在於可以多種語言交互。
當然了,也可以吧所謂的易語言封裝成dll,被c調用,當然如果他有這項功能的話。
如果一個c語言已經編譯成可執行程序了,比如exe文件,那麼易語言端應與c語言端進行進程通信,方可實現數據交互。那麼進程通信就有多種方式,那麼就不贅述了。
說下DLL的封裝,如果是c語言我們需要加入dll.h
dll.h中放入以下語句
#ifndef_DLL_H_
#define_DLL_H_
#ifBUILDING_DLL
#defineDLLIMPORT__declspec(dllexport)
#else/*NotBUILDING_DLL*/
#defineDLLIMPORT__declspec(dllimport)
#endif/*NotBUILDING_DLL*/
DLLIMPORTvoidHelloWorld(void);
#include"func.h"
#endif/*_DLL_H_*/
程序中的,DLLIMPORTvoidHelloWorld(void);,#include"func.h"是例子,就是放你書寫的用c寫的函數聲明的地方。
而在你c語言原先放主函數的那個文件中應該寫入以下內容
/*Replace"dll.h"withthenameofyourheader*/
#include"dll.h"
#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
BOOLAPIENTRYDllMain(HINSTANCEhInst/*Libraryinstancehandle.*/,
DWORDreason/*.*/,
LPVOIDreserved/*Notused.*/)
{
switch(reason)
{
caseDLL_PROCESS_ATTACH:
break;
caseDLL_PROCESS_DETACH:
break;
caseDLL_THREAD_ATTACH:
break;
caseDLL_THREAD_DETACH:
break;
}
/*ReturnsTRUEonsuccess,FALSEonfailure*/
returnTRUE;
}
我們看見有很多case,也有很多傳入參數,最初可以不用管它,也可以使用。如需詳細配置,應自行梳理再做決定。
另外一點,對於高級語言和c語言清理現場的問題,也就是被調用函數結束後由被調用函數清理棧,還是由下一個被執行函數清理上一個函數的棧,這點很重要。兩種不同的調用方式將導致你雖然可以調用dll,但可能數據出錯。這個問題可以說在VB與C的交互上面就可以體現了。__cdecl這個就是默認c語言的棧處理方式。__stdcall是VB的處理方式,那麼對於易語言,請您詳細查看後再做定論。
那麼具體在c語言中提現就是,我們需要在函數前面加上__stdcall以告知編譯器採用此類編譯方式,應用方法就如下面的聲明。
#ifndef_FUNC_H_
#define_FUNC_H_
#include"dll.h"
#include<winsock2.h>
#include"var.h"
DLLIMPORT__(int*PercentNum,int*FileID,int*PackageID);
DLLIMPORT__stdcallintGetInfoNum(intMode);
DLLIMPORT__stdcallvoidPutInfoNum(intInfoNum,intMode);
DLLIMPORT__stdcallvoidDemo0(void);
DLLIMPORT__stdcallvoidDemo1(void);
DLLIMPORT__(void);
DLLIMPORT__(void);
#endif/*_FUNC_H_*/
我聽說VB和易語言有相似之處那麼我給出VB調用C語言DLL時候的函數書寫例子,以便您參考。
PublicClassForm1
PrivateDeclareSubNetToWorkLib"Client.dll"(ByValIpAddrAsString,ByValPortAsInteger,ByValModeAsInteger)
"Client.dll"(ByValStrAsString,ByValModeAsInteger)AsInteger
"Client.dll"(ByValStrAsString,ByValModeAsInteger)AsInteger
"Client.dll"(ByValModeAsInteger)AsInteger
"Client.dll"(ByValInfoNumAsInteger,ByValModeAsInteger)
PrivateDeclareSubDemo0Lib"Client.dll"()
PrivateDeclareSubDemo1Lib"Client.dll"()
.........
...
..
...
PrivateSubToolStripButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesToolStripButton1.Click
'從text搜索關鍵詞並讀取回鏈表數據
DimStrAsString
If(ToolStripTextBox1.Text="")Then
MsgBox("內容不能為空")
Else
Str=ToolStripTextBox1.Text
StrToStruct(Str,SEND_SEARCH_0200)
DimTh0AsThreading.Thread
Th0=NewThreading.Thread(AddressOfDownFileList)
Th0.Start()
EndIf
EndSub
....
..
上程序但中StrToStruct(Str, SEND_SEARCH_0200)就是一個典型的VB調用DLL函數的例子。
那麼如果給些相關的參考資料(C語言封裝DLL以及VB調用的問題)
http://www.aidianying123.net/article/?29.html
以便您對此更加了解。
㈥ 易語言編譯器中的 (靜態編譯) 有什麼作用
用靜態編譯它會把支持庫文件和EXE程序一起打包,編譯出來的EXE程序可以在沒有裝易語言的電腦中運行。如果不是靜態編譯他會把支持庫文件和EXE分離開,如果失去支持文件EXE程序就無法在沒有裝易語言的電腦中運行。
㈦ 易語言編譯器與C++的編譯器分別是什麼他們有什麼區別啊
C/C++語言編譯器
編輯
你可以用LCC-Win32開發32位的控制台程序、Windows常規程序、動態連接庫(DLL) 以及靜態連接庫(LIB)。LCC編譯器支持標準的ANSI C,同時支持 C語言的擴展。通過下載相關工具,LCC-Win32還提供對Eiffel、Fortran語言的支持。
1.Borland C++ Compiler 5.5
「Borland C/C++ 5.5.1 for Win32」是Borland公司在2000年免費放出的一個C/C++編譯器,其功能完整、包含多種SDK,且容量極小,安裝版本大小僅8MB。Borland公司的旗艦級產品「C++ Builder 5」內置的就是這一編譯器。
2.Dev-C++ 4.9.9.2
是Bloodshed軟體公司於2005年2月21日推出的一個基於MingW(即GNU C/C++的Win32版)的微型C/C++開發工具。由於使用了GNU C/C+內核,所以在做軟體移植時非常的方便,你可以方便的將一個程序移植到任意一個有GNU C/C++的平台。而且由於基於GNU C/C++的開放源代碼軟體很多,所以使用Dev-C++是一個很好的選擇。但由於它的調試不便,幫助不全等問題,也使得它在推廣上舉步艱難,遠比不上Borland C/C++、OpenWatcom C/C++這兩個同是免費的編譯器。
3.DJGPP
DJGPP是基於32位保護模式的C語言編譯器,是一個GNU軟體,換句話說,你可以得到它整個系統的源代碼,且可以任意修改。它的集成環境RHIDE是仿Borland C++ 3.1的,十分好用,這比Watcom C要強多了。
4.LCC-Win32
運行於Windows9x/Me/NT/2000下的免費的32位C語言編譯系統。它的原始發布文件只有 3M,但卻擁有一個功能強大的集成開發環境(IDE)、速度極快的編譯器與連接器、方便順手的調試器、資源編輯器和版本控制系統。另外還提供圖像編輯器和 C 語言源文件格式化縮進器等附加工具。通過它的應用程序向導,你可以單擊幾次滑鼠輕松得到一個應用程序框架,絲毫不比其它龐大的同類軟體遜色。
5.OpenWatcom C/C++ 1.0
Watcom系統編譯器是加拿大Watcom公司開發的Intel x86體系16/32位編譯器,其最新版是11.0c。
Watcom C/C++的集成開發環境極差,不像Borland C/C++和Visual C/C++那樣有漂亮的界面,編譯連結不過輕輕一點。Watcom C/C++的大部分使用者都在命令行下編譯程序。想想吧!一個需要在命令行下編譯程序的編譯器,怎麼匹敵Borland C/C++和Visual C/C++,甚至是C++ Builder呢?
當然,編譯器的好壞並不能單單從使用方便使用上來比較,專業的程序員最關心的是目標程序的質量。Watcom系列編譯器相比Borland編譯器和Microsoft編譯器有一個最大的優勢,那便是速度:用Watcom C/C++編譯出來的程序在速度上遠遠超越(記住,不是一點兒,是超越了許多)了Borland C/C++和Microsoft Visual C/C++編譯出來的程序。這樣一來,即使是沒有集成開發環境,程序員們也認了。這也是不少游戲程序員親昧於這個編譯器的原因。
現在我們所用到的OpenWatcom C/C++ 1.0便是Watcom C/C++ 11.0c開放後的版本,它是免費、而且開放源碼的。
6.當然還有我們經常看見的TC2.0 TC3.0 Borland C++3.1 等
參考資料:http://antare.bokee.com/3361182.html
需要付費的編譯器(有些允許有評估期的免費下載):
Borland C++
Comeau C++ - 支持多平台
Compaq C++
Digital Mars C++
Edison Design Group C++ Front End - 被許多C++編譯器廠商採用
Green Hills C++ - 支持嵌入式系統平台
HP C++
IBM C++
Intel C++ - 支持Windows, Linux, 和其他嵌入式系統
Interstron C++
Metrowerks C++ - 支持多平台,可從Metrowerks主頁上查詢
Mentor Graphics/Microtec Research C++ - 支持嵌入式系統平台
Microsoft C++
Paradigm C++ - 支持x86嵌入式系統
The Portland Group C++ - 針對奔騰CPU優化
SGI C++ - 優化的編譯器
Sun C++
WindRiver's Diab C++ - 用於很多嵌入式系統
來自:http://blog.sina.com.cn/s/blog_3e26cd0b010008d2.html
7. Microsoft Visual C++
Visual C++6.0不僅是一個C++編譯器,而且是一個基於Windows操作系統的可視化集成開發環境(integrated development environment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調試器以及程序向導AppWizard、類向導Class Wizard等開發工具。 這些組件通過一個名為Developer Studio的組件集成為和諧的開發環境。
版本由visual C++6.0發展到visual C++2008再到現在的visual C++2010(最新版)
Visual Studio 2010發布
2010年4月12日,Microsoft Visual Studio 2010全球發布會將於北京盛大舉行,我們特別邀請千位中國開發菁英與世界五大城市同步迎接跨世代開發工具!屆時,微軟全球資深副總裁張亞勤博士等多位微軟高層,以及來自微軟總部的多位核心研發團隊主管,將親臨發布會現場,共同為您解密微軟新一代開發平台的革新之處,幫助您實現更完美的Coding夢想!
對於易語言 網上沒有足夠的資料表明它用的獨立的編譯器 很多人都說是用的VC
用查殼工具發現易語言生成的PE文件編譯器為VC6.0,有人推斷易語言可能是在VC上架了一層,最終可能仍然是經由VC的編譯器進行編譯,可能是從易語言到C++,到匯編,再到機器碼,以上資料僅供參考
㈧ 易語言 寫php代碼編譯器
貌似不能,就算是現在的商業的php編寫軟體也沒這功能,始終都要轉換成網頁源代碼。
如果你要模擬的話是個工程量很大的事情