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
以便您對此更加了解。
㈡ c語言與易語言的區別是什麼是同一個性質的嗎
怎麼現在還有人想了解易語言。。。。
易語言本質上就是中文化的VB,根本不是一個獨立的語言,編譯之後就是VB。易語言根本就沒有學習的必要,當初炒得沸沸揚揚,無非是打什麼民族牌,慣用的伎倆。用個中文寫代碼就民族驕傲,就有利於振興民族軟體業了?笑死人,毫無關系的東西。中文寫代碼比英文蛋疼得多,極大降低了開發效率,自找麻煩。
現在看來,易語言更像是一個騙局,試問有哪一款語言會對編譯器收費?有哪個領域承認這東西了?有哪個語言,哪個技術支持,兼容易語言?這種垃圾東西就不該存在,把很多新人引入歧途,其心可誅!
跟C語言相提並論更是毫無意義,C語言是高級程序語言的基石,是很多其他語言的底層,而易語言不過是VB語言的一層皮而已。學什麼語言要看它本身的特性是否吸引人,更要看它的整個生態環境是否良好。
這里給編程新手推薦Python,作為腳本語言,幾乎無所不包,而且語法優雅易學,跨平台支持好,編寫出實用代碼不要太方便。要學習編譯型語言,那就繞不開C語言。隨後可以學習C#。千萬不要學那些不入流的東西浪費時間。
㈢ 易語言和C語言哪個容易編
編寫方面易語言應該比C語言簡單並且快些
但是效果C語言應該更好,因為易語言需要帶支持庫,即使做了特殊處理(斬月/黑月),易語言還有殺毒軟體易誤報的缺點
㈣ C語言跟E語言的區別
區別如下:
C語言是一門通用英文計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
易語言是一門中文計算機編程語言。以「易」著稱,以中文作為程序代碼表達的語言形式。易語言的創始人是吳濤。早期版本的名字為E語言。易語言最早的版本的發布可追溯至2000年9月11日。創造易語言的初衷是進行用中文來編寫程序的實踐。從2000年至今,易語言已經發展到一定的規模,功能上、用戶數量上都十分可觀。2015年計劃推出移動版編程工具,用於編譯安卓系統手機APP!
㈤ c語言和易語言有什麼區別
C速度快,易語言體積大速度慢,不過適合中國國情
C寫底層的,易語言和VB一樣,高級語言
㈥ 易語言和C語言的差別
這么說吧:
C語言高效,簡潔。並且幾乎免費(VS除外,但是gcc好用)。然後是我見過最快的語言(除了匯編),並且語法好理解,成熟,社區人多,有問題好解決。
只是不用visual開發圖形化沒有vb、易語言方便
適合需要高性能的用戶
-----
易語言:方便,並且gui設計簡單。所見即所得,很直觀,並且支持庫豐富。
但是速度不夠快,穩定性需要繼續提高,還有兩個問題:
1)
就是眾所周知的3**,b**,k**報毒問題
2)
編譯效率不夠高,並且編譯出來不加殼很大
還有是易語言的可編譯exe版很貴(***
另外,易語言的調試功能好用,尤其是檢測數組越界
㈦ C語言和易語言有什麼區別…兩個都是編譯軟體,能不能充分的解釋下兩者的區別…謝謝
易語言是中國人自己開發的一種編程語言,是一款全中文程序代碼的編程語言,和VB、C語言、C++、C#等都屬於同一性質,都是用來開發程序和編寫軟體用的。易語言的內核由C++編寫而成,與前面說的幾種語言一樣,都屬於運行於操作系統平台上的高級編程語言。易語言與其他幾種語言的不同點在於:易語言採用的是全中文的程序代碼,不需要英語基礎即可學習使用,和其他幾種編程語言相比,易語言更簡單易學,入門更快,編寫軟體變的更加簡單化。
㈧ C語言和易語言是什麼東西
它倆都是編程語言,只是不同種類的編程語言,什麼是編程語言呢?計算機語言通常是一個能完整、准確和規則地表達人們的意圖,並用以指揮或控制計算機工作的「符號系統」。計算機語言通常分為三類:即機器語言,匯編語言和高級語言。 1. 機器語言 機器語言是用二進制代碼表示的計算機能直接識別和執行的一種機器指令的集合。它是計算機的設計者通過計算機的硬體結構賦予計算機的操作功能。機器語言具有靈活、直接執行和速度快等特點。用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令代碼和代碼的涵義。手編程序時,程序員得自己處理每條指令和每一數據的存儲分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何種狀態。這是一件十分繁瑣的工作,編寫程序花費的時間往往是實際運行時間的幾十倍或幾百倍。而且,編出的程序全是些0和1的指令代碼,直觀性差,還容易出錯。現在,除了計算機生產廠家的專業人員外,絕大多數程序員已經不再去學習機器語言了。2.匯編語言 為了克服機器語言難讀、難編、難記和易出錯的缺點,人們就用與代碼指令實際含義相近的英文縮寫詞、字母和數字等符號來取代指令代碼(如用ADD表示運算符號「+」的機器代碼),於是就產生了匯編語言。所以說,匯編語言是一種用助記符表示的仍然面向機器的計算機語言。匯編語言亦稱符號語言。匯編語言由於是採用了助記符號來編寫程序,比用機器語言的二進制代碼編程要方便些,在一定程度上簡化了編程過程。匯編語言的特點是用符號代替了機器指令代碼, 而且助記符與指令代碼一一對應,基本保留了機器語言的靈活性。使用匯編語言能面向機器並較好地發揮機器的特性,得到質量較高的程序。匯編語言中由於使用了助記符號,用匯編語言編制的程序送入計算機,計算機不能象用機器語言編寫的程序一樣直接識別和執行,必須通過預先放入計算機的 「匯編程序「的加工和翻譯,才能變成能夠被計算機識別和處理的二進制代碼程序。用匯編語言等非機器語言書寫好的符號程序稱源程序,運行時匯編程序要將源程序翻譯成目標程序。目標程序是機器語言程序,它一經被安置在內存的預定位置上,就能被計算機的CPU處理和執行。匯編語言像機器指令一樣,是硬體操作的控制信息,因而仍然是面向機器的語言,使用起來還是比較繁瑣費時,通用性也差。匯編語言是低級語言。但是,匯編語言用來編制系統軟體和過程式控制制軟體,其目標程序佔用內存空間少,運行速度快,有著高級語言不可替代的用途。3.高級語言 不論是機器語言還是匯編語言都是面向硬體的具體操作的,語言對機器的過分依賴,要求使用者必須對硬體結構及其工作原理都十分熟悉,這對非計算機專業人員是難以做到的,對於計算機的推廣應用是不利的。計算機事業的發展,促使人們去尋求一些與人類自然語言相接近且能為計算機所接受的語意確定、規則明確、自然直觀和通用易學的計算機語言。這種與自然語言相近並為計算機所接受和執行的計算機語言稱高級語言。高級語言是面向用戶的語言。無論何種機型的計算機, 只要配備上相應的高級語言的編譯或解釋程序,則用該高級語言編寫的程序就可以通用。目前被廣泛使用的高級語言有BASIC、PASCAL、C、COBOL、FORTRAN、LOGO以及VC、VB等。這些語言都是屬於系統軟體。計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過「翻譯程序」翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種「翻譯」通常有兩種方式,即編譯方式和解釋方式。編譯方式是:事先編好一個稱為編譯程序的機器語言程序,作為系統軟體存放在計算機內,當用戶由高級語言編寫的源程序輸入計算機後,編譯程序便把源程序整個地翻譯成用機器語言表示的與之等價的目標程序,然後計算機再執行該目標程序,以完成源程序要處理的運算並取得結果。解釋方式是:源程序進入計算機時,解釋程序邊掃描邊解釋作逐句輸入逐句翻譯,計算機一句句執行,並不產生目標程序。PASCAL、 FORTRAN、COBOL等高級語言執行編譯方式;BASIC語言則以執行解釋方式為主;而PASCAL、C語言是能書寫編譯程序的高級程序設計語言。每一種高級(程序設計)語言,都有自己人為規定的專用符號、英文單詞、語法規則和語句結構(書寫格式)。高級語言與自然語言(英語)更接近,而與硬體功能相分離(徹底脫離了具體的指令系統),便於廣大用戶掌握和使用。高級語言的通用性強,兼容性好,便於移植。 然後是常見的幾中高級程序設計語言下面介紹幾種較有代表性的高級程序設計語言:⑴BASIC語言 BASIC語言全稱是Beginner』s all Purpose Symbolic Instruction Code,意為「初學者通用符號指令代碼「。1964年由美國達爾摩斯學院的基米尼和科茨完成設計並提出了BASIC語言的第一個版本,經過不斷豐富和發展,現已成為一種功能全面的中小型計算機語言。BASIC易學、易懂、易記、易用,是初學者的入門語言,也可以作為學習其他高級語言的基礎。BASIC有解釋方式和編譯方式兩種翻譯程序。⑵PASCAL語言 PASCAL是一種結構程序設計語言,由瑞士蘇黎世聯邦工業大學的沃斯(N.Wirth)教授研製,於1971年正式發表。是從ALGOL60衍生的,但功能更強且容易使用。目前,作為一個能高效率實現的實用語言和一個極好的教學工具,PASCAL語言在高校計算機軟體教學中一直處於主導地位。 Pascal(B.Pascal)是十七世紀法國著名數學家,他於1642年曾發明現代台式計算機的雛型機—加減法計算機。PASCAL具有大量的控制結構,充分反映了結構化程序設計的思想和要求,直觀易懂,使用靈活,既可用於科學計算,又能用來編寫系統軟體,應用范圍日益廣泛。⑶通用編程語言C C語言是美國AT&T(電報與電話)公司為了實現UNIX系統的設計思想而發展起來的語言工具。C語言的主要特色是兼顧了高級語言和匯編語言的特點,簡潔、豐富、可移植。相當於其他高級語言子程序的函數是C語言的補充,每一個函數解決一個大問題中的小任務,函數使程序模塊化。C語言提供了結構式編程所需要的各種現代化的控制結構。C語言是一種通用編程語言,正被越來越多的計算機用戶所推崇。使用C語言編寫程序,既感覺到使用高級語言的自然,也體會到利用計算機硬體指令的直接,而程序員卻無需捲入匯編語言的繁瑣。⑷COBOL語言 COBOL的全稱是Common Business Oriented Language,意即:通用商業語言。在企業管理中,數值計算並不復雜,但數據處理信息量卻很大。為專門解決經企管理問題,於1959年,由美國的一些計算機用戶組織設計了專用於商務處理的計算機語言COBOL,並於1961年美國數據系統語言協會公布。經不斷修改、豐富完善和標准化,已發展為多種版本。COBOL語言使用了300多個英語保留字,大量採用普通英語詞彙和句型,COBOL程序通俗易懂,素有「英語語言」之稱。COBOL語言語法規則嚴格。用COBOL語言編寫的任一源程序,都要依次按標識部、環境部、數據部和過程部四部分書寫,COBOL程序結構的「部」 內包含「節」,「節」內包含「段」,段內包含語句,語句由字或字元串組成,整個源程序象一棵由根到干,由干到枝,由枝到葉的樹,習慣上稱之為樹型結構。目前COBOL語言主要應用於情報檢索、商業數據處理等管理領域。常用的高級程序設計語言,除了上述的幾種之外,還有很多,如以英國著名詩人拜倫(G.N.G.Byron)的獨生女艾達·拜倫(Ada Byron)的名字命名的軍用語言Ada,深受中、小學生歡迎的語言LOGO等等。</SPAN></SPAN></p>
㈨ C語言和易語言有什麼分別
易語言是中文編程的,不用跨越英文門檻,目前是最好的中文編程語言了,現在用戶還有功能都很不錯了,我曾經想學易語言來的,但是和一個易語言程序員聊過後,他的建議是如果沒接觸就不要學,說實話個人感覺這個跟C語言的差別還是很大的,建議學C或者C++,畢竟這個才是主流,而且C和C++基本涉及不到什麼英語,即使你想學易語言,但還是建議先學C或者C++,然後有餘力的情況下再去看看其他語言吧,比如java之類,感覺都比易語言來的實在,這個不是支不支持國產,而是客觀上國產的易語言和C的差距還是很大的
㈩ 易語言編程和C語言編程有什麼區別
C語言可以說是行業標准,正經的程序員都應該會C。 而易語言是國內的一些人為了弄國家撥款搞的所謂「具有自主知識產權」的「編程語言」,不僅外國沒人用,國內正經的軟體公司也都不用。