freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

嵌入式瀏覽器開發(fā)畢業(yè)設(shè)計畢業(yè)論文(更新版)

2025-08-06 13:06上一頁面

下一頁面
  

【正文】 其他 UNIX 的 make工具稱之為宏,實際是同一個東西。例如,假設(shè)你現(xiàn)在有一個 C++ 源文件 ,該源文件包含有自定義的頭文件 ,則目標文件 明確依賴于兩個源文件: 和 。
實際上,make 工具通過一個稱為 makefile 的文件來完成并自動維護編譯工作。通常使用 ar 程序把一些目標文件(.o)組合在一起,成為一個單獨的庫,然后運行 ranlib,以給庫加入一些索引信息。
UMACRO 取消對 MACRO 宏的定義。用在生成可執(zhí)行文件時。
E 只運行 C 預(yù)編譯器。一般來說,C 編譯器通過源文件的后綴名來判斷是 C 程序還是 C++ 程序。對變量名,不贊成使用大小寫混寫的形式,但鼓勵使用描述性的名稱;盡可能不使用全局變量;不采用匈牙利命名法表示變量的類型;采用短小精悍的名稱表示局部變量;保持函數(shù)短小,從而避免使用過多的局部變量。在利用 C 語言編寫程序時,應(yīng)當符合其簡潔的設(shè)計原則,而不應(yīng)當使用非常復(fù)雜的變量命名方法。在 C 語言中,操作系統(tǒng)的系統(tǒng)調(diào)用通常通過函數(shù)調(diào)用的形式完成,在 Linux 系統(tǒng)中,系統(tǒng)調(diào)用函數(shù)定義在 glibc 中。
(2) 函數(shù)庫和系統(tǒng)調(diào)用
glibc:眾所周知,C 語言并沒有為常見的操作,例如輸入/輸出、內(nèi)存管理,字符串操作等提供內(nèi)置的支持。 第四章 Linux程序開發(fā)技術(shù)及 GTK圖形程序開發(fā) Linux下的程序開發(fā)環(huán)境(1) 標準 (ANSI C, POSIX, SVID, XPG, ...)
ANSI C:這一標準是 ANSI(美國國家標準局)于 1989 年制定的 C 語言標準。首先:取得當前焦點所在的widgetpWidget=TDWidgetGetAtPoint(pThis,pt,amp。*aReturn = JS_NewObject(JS_GetGlobalContext(), amp。其次就是要將某些結(jié)點注冊為JavaScript對象。}/script/heada onmouseover=ChangeImage(0)。注冊其它類:RegisterClassPoint (cx,globalObj)。這也包含了利用JavaScript API進行應(yīng)用的基本思路。既可以編譯成小的 shell 程序(像早期的BASIC),又連接Library后生成交互式的JavaScript解釋器, 文件。因此,在詞法分析時要對SCRIPT標記進行特殊處理,遇到SCRIPT就應(yīng)逐字符讀入后面的內(nèi)容,直到遇到下一個/SCRIPT標記。而“HTML智能分析”卻能很好的解決。根據(jù)用戶設(shè)置的版式,將分析和編輯的結(jié)果,自動生成新的網(wǎng)頁。采用分段進行詞法分析,實際每次分析的代碼會不足1024字節(jié),余下的部份匯入到下一段的分析過程即可,直到所有內(nèi)容被分析完畢。處理完畢,指針指向下一個元素首。 //是否是結(jié)束元素,如/bodyBitTokenAttrList *attrList。typedef struct TokenList{ BitToken *token。int global_curPosition。 主體的數(shù)據(jù)流分析:逐字符的進行判斷,確定數(shù)據(jù)的歸屬類型。需要考慮的功能:(1) JavaScript支持(2) 漢字支持(3) 圖片格式支持(4) 表單支持(5) 頁面元素的消息響應(yīng) 人員分工由于情況的變動,造成了人員比較緊張,在前期準備工作中,人力充沛,使得收集的資料比較完備,打下了較好的基礎(chǔ)??紤]到GUI是可以成為獨立模塊的,如瀏覽器ZEN的設(shè)計,我們決定使用GTK,待時機成熟可換用其它平臺,也并非難事。我們也可以看到,要設(shè)計效果較好的瀏覽器產(chǎn)品,決不是三五個人、兩三條槍就能辦到的,參與工作的人員不僅需要有相關(guān)經(jīng)驗,還需要有一定的投入,一方面對程序員艱苦的工作給予鼓勵,另一方面也可能需要購買一些成熟的開發(fā)包,在基礎(chǔ)的開發(fā)平臺、測試平臺上也要有一定的投資,總的來說,開發(fā)自主技術(shù)的瀏覽器產(chǎn)品是有一定的風險的,這也是國內(nèi)目前相關(guān)產(chǎn)品為數(shù)不多的原因。第二在于主瀏覽窗體中的圖形元素的輸出(通常以自畫控件的方式)。HTML詞法分析是瀏覽器設(shè)計的基礎(chǔ)環(huán)節(jié)之一,也是整個設(shè)計過程中重要的前端工作,其數(shù)據(jù)結(jié)構(gòu)的擬定與接下來的語法分析和布局算法密切相關(guān),詞法分析的效率與準確性、容錯性也關(guān)系到整個瀏覽器設(shè)計的質(zhì)量。因為使用FLTK,所以可以在嵌入式的Micro Window平臺運行,該瀏覽器支持簡單的表格,界面還沒有做(只有一個主窗口),不支持中文,由于FLTK的BUG比較多,我們在實際編譯時經(jīng)常出錯,即使編譯通過,也常常是還沒運行就core dump了,但曾經(jīng)由某人編譯成功,基本可用,網(wǎng)址是:。(3) Gzilla,現(xiàn)名Dillo,是基于Linux,使用GTK作為GUI平臺開發(fā)的瀏覽器,其開發(fā)目的也包含嵌入式的應(yīng)用。(2) Access Netfront,Access是日本的瀏覽器大廠,占據(jù)了大部份的日本瀏覽器市場,其產(chǎn)品廣泛應(yīng)用于手持設(shè)備、機頂盒、游戲機等產(chǎn)品。這些桌面型瀏覽器功能參差不齊,但大多能實現(xiàn)基本的瀏覽功能。在掌上電腦、PDA、手機、導(dǎo)航設(shè)備、信息家電領(lǐng)域嵌入式系統(tǒng)被廣泛采用,這也是近期產(chǎn)品研發(fā)的熱點。迫切需要更多的人來關(guān)注嵌入式瀏覽器技術(shù),開發(fā)中國自主知識產(chǎn)權(quán)的瀏覽器產(chǎn)品。這也是桌面瀏覽器和嵌入式瀏覽器最大的區(qū)別。而且支持鍵盤操作。該瀏覽器的缺點是不支持表格,布局過于簡單,不支持中文,瀏覽效果比較差,優(yōu)點是網(wǎng)絡(luò)功能完善,支持cache緩沖,能夠支持多種圖片格式。網(wǎng)址是:。本文中的布局應(yīng)理解為界面輸出前的預(yù)演和處理位置等信息的算法,而不是具體的畫圖和界面輸出。這實際上是程序員努力的結(jié)果,而不是JavaScript編譯器的功勞。以下的工作均是建立在大量的調(diào)查基礎(chǔ)上的。 確定要實現(xiàn)的基本功能鑒于對瀏覽器開發(fā)難度的充分考慮,以及現(xiàn)有人員的水平,擬定實現(xiàn)以下功能,以及需要考慮但暫不予實現(xiàn)的功能。 第二章 HTML詞法分析器的設(shè)計及其應(yīng)用HTML詞法分析是瀏覽器設(shè)計的基礎(chǔ)環(huán)節(jié)之一,也是整個設(shè)計過程中重要的前端工作,其數(shù)據(jù)結(jié)構(gòu)的擬定與接下來的語法分析和布局算法密切相關(guān),詞法分析的效率與準確性、容錯性也關(guān)系到整個瀏覽器設(shè)計的質(zhì)量。 數(shù)據(jù)結(jié)構(gòu)typedef struct BitTokenContext{char * strBuffer。BitPTagList pTagList。}BitTokenList,*BitPTokenList。請注意,以上出現(xiàn)tail標記的指針變量,如BitTokenList * tokenList_tail等,其作用是用于保存鏈表結(jié)尾節(jié)點指針,便于在釋放內(nèi)存時,直接找到鏈尾,提高了算法的效率。 算法效率與改進:采用以上的基本算法,是可用的,但當網(wǎng)頁比較大的時候,比如600K,該算法的效率成倍下降,這主要是由于要處理的字符串太大,在內(nèi)存中完成查找、替換、復(fù)制、移動等操作,響應(yīng)時間明顯下降。詞法分析將網(wǎng)頁的文本數(shù)據(jù)流以清晰的結(jié)構(gòu)表現(xiàn)出來,這樣,在后面的應(yīng)用中就可以很容易的遍歷各節(jié)點,并輕松地獲得各元素節(jié)點的屬性。比如PRE標記,代表所包含的內(nèi)容瀏覽器應(yīng)不予分析,按TXT格式輸出,而如表格TR等元素則意味著需要換行。以下是該程序的片斷: pTtokenList=global_cxtokenList。正如前面所述,HTML詞法分析是瀏覽器設(shè)計的基礎(chǔ)環(huán)節(jié)之一,但并非最重要和最具難度的環(huán)節(jié),若想開發(fā)出效果較好的瀏覽器產(chǎn)品,還要在布局和GUI設(shè)計上多下功夫。關(guān)于JavaScript API,參見JavaScript API詳解。初始化globalObj:globalObj = JS_NewObject(cx, amp。RegisterClassPolygon (cx,globalObj)。由此產(chǎn)生兩個關(guān)鍵問題:1. javascript如何獲取HTML元素的名稱和屬性。proto))使用JS_DefineObject或JS_NewObject定義對象屬性:根據(jù)是否定義了該元素的名稱區(qū)別對待:if(TD_XMLContentIsNamedItem(aElement,amp。這樣,在編譯時,HTML元素的標識就能被Javascript編譯器識別,否則會報錯變量未定義。最后一般為調(diào)用JavaScript執(zhí)行,實現(xiàn)實際響應(yīng)。
SVID:System V 的接口描述。目前,流行的 Linux 系統(tǒng)使用 glibc 以上的版本。系統(tǒng)調(diào)用是一個非常耗時 的過程。
大括號的位置。
(5) 庫和頭文件的保存位置
函數(shù)庫:/lib:系統(tǒng)必備共享庫
/usr/lib:標準共享庫和靜態(tài)庫
/usr/i486linuxlibc5/lib:libc5 兼容性函數(shù)庫
/usr/X11R6/lib:X11R6 的函數(shù)庫
/usr/local/lib:本地函數(shù)庫
頭文件:
/usr/include:系統(tǒng)頭文件
/usr/local/include:本地頭文件 Linux 上的編譯器和調(diào)試器(1) Linux 上的 C/C++ 編譯器和調(diào)試器
運行 gcc/egcs:Linux 中最重要的軟件開發(fā)工具是 GCC。因此,通常使用 g++ 命令來完成 C++ 程序的編譯和連接,該程序會自動調(diào)用 gcc 實現(xiàn)編譯。
IDIRECTORY 指定額外的頭文件搜索路徑DIRECTORY。
O2 進一步優(yōu)化。
(3)gdb
GNU 的調(diào)試器稱為 gdb,該程序是一個交互式工具,工作在字符模式。由于庫是在運行的時候被調(diào)入,因此這個選項是必需的,shared選項告訴編譯器產(chǎn)生共享庫代碼。
默認情況下,GNU make 工具在當前工作目錄中按如下順序搜索 makefile: GNUmakefile,makefile,Makefile。通常,makefile 中定義有 clean 目標,可用來清除編譯過程中的中間文件,例如:
clean:
rm f *.o運行 make clean 時,將執(zhí)行 rm f *.o 命令,最終刪除所有編譯過程中產(chǎn)生的所有中間文件。
f FILE 以指定的 FILE 文件作為 makefile。
W FILE 假定文件 FILE 已經(jīng)被修改。
gtk_main ()。
void gtk_signal_emit( GtkObject, guint, ... )。 GtkWidget *open_dialog_entry。打開URLvoid a_Commands_close_callback(GtkWidget * widget, gpointer client_data)。void a_Nav_reload(BrowserWindow *bw)。重要的字符處理函數(shù),讀取到指定字符后結(jié)束char *Token_GetAttribute(BitTokenContext *global_cx)。,主要的函數(shù)說明:gint pixmap_new(GtkWidget *widget,int width,int height)。gint Browser_Paint(BrowserWindow *bw)。 Buf[i]!=39。 if(Buf[i]==39。進行真實的畫圖。例如:當遇到title元素時,就使用gtk函數(shù)來設(shè)定窗口標題為指定標題gtk_window_set_title(GTK_WINDOW(bwmain_window),pTtokenListtokenpData)。這樣,在出現(xiàn)font或相關(guān)元素的首標記時,我們將詞法分析的結(jié)果提取出來,即將其元素屬性提取出來,作為參數(shù)傳遞給html_open_font函數(shù),該函數(shù)將這些屬性進行組合,設(shè)置成為當前字體屬性,并入棧保存;在出現(xiàn)font或相關(guān)元素的尾標記時,出于保險(因為存在交錯包含關(guān)系的元素),首先檢驗棧頂元素與正在處理的元素尾標記是否匹配(名稱相同),如相同則出棧,并將棧內(nèi)下一字體屬性設(shè)為系統(tǒng)的當前字體屬性。此為font_list的類型定義,描述了字體屬性的結(jié)構(gòu)font_list font_opening[50]。對字號的支持也不好。而Netscape由于考慮到支持多個GUI平臺,還需要一個抽象的中間層文檔視圖控件,這個中間層也在萬行以上。 所有同一類別的控件的一般聲明 (例如所有的按鈕控件)是放在 class structure。 void (* enter) (GtkButton *button)。實際上,無論在什么情況下,我們要作畫都需要合適的畫布,要在可以作畫的控件上才可以施展拳腳,drawing_area正是這樣的控件,如此,我們只要將畫畫在drawing_area上,然后再使用gtk_layout_put函數(shù)將drawing_area放置到layout控件上,不就萬事大吉了?不錯,但只對了一半,原來drawing_area本身并沒有實現(xiàn)自我重畫的機制,當最小化窗口或打開對話框時,原有的界面就被破壞,只有進行重畫才能恢復(fù)原貌,重畫又是怎樣實現(xiàn)的呢?原來,我們在將drawing_area放置于layout之前,是做了手腳的,使用以下函數(shù)gtk_object_set_data(GTK_OBJECT(drawing_area), layout, partp)。首先新建一個消息盒子,event_box = gtk_event_box_new()。 gtk_signal_connect(GTK_OBJECT(event_box), leave_notify_event, (GtkSignalFunc)activ
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1