學用Visual C++6.0開發Active X

學用Visual C++6.0開發Active X pdf epub mobi txt 電子書 下載2026

出版者:
作者:
出品人:
頁數:0
译者:
出版時間:1900-01-01
價格:38.0
裝幀:
isbn號碼:9787810653398
叢書系列:
圖書標籤:
  • Visual C++
  • ActiveX
  • 開發
  • 編程
  • 控件
  • Windows
  • 技術
  • 教程
  • 實例
  • 軟件開發
  • C++
想要找書就要到 本本書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

掌握 ActiveX 編程藝術,開啓 Web 應用新視界 《學用Visual C++6.0開發ActiveX》 是一本專為希望深入理解和掌握 ActiveX 控件開發技術,並將其應用於實際 Web 應用開發的讀者而精心打造的實用指南。本書旨在幫助讀者從零開始,逐步構建齣功能強大、交互性強的 ActiveX 控件,從而極大地擴展 Web 頁麵的錶現力和功能。 核心內容涵蓋: ActiveX 控件基礎理論與原理深度解析: 本書將從 ActiveX 技術的核心概念入手,詳細講解 COM (Component Object Model) 的基礎知識,包括接口、組件、注冊錶以及 GUID 的作用。通過清晰易懂的語言和豐富的圖示,幫助讀者建立起對 ActiveX 工作原理的全麵認知,為後續的實踐打下堅實基礎。 Visual C++ 6.0 開發環境搭建與常用工具介紹: 針對 Visual C++ 6.0 這個經典而強大的開發平颱,本書將詳細指導讀者如何正確搭建開發環境,並重點介紹 MFC (Microsoft Foundation Classes) 框架在 ActiveX 控件開發中的應用。讀者將學習如何利用 MFC AppWizard 快速生成 ActiveX 控件項目,並熟悉 ClassWizard、Property Sheet 等常用工具,提高開發效率。 創建和實現第一個 ActiveX 控件: 本書將以“Hello, World!”級彆的簡單控件為例,引導讀者一步步完成 ActiveX 控件的創建、編譯和注冊。從屬性的添加、方法的實現到事件的定義和觸發,都將進行詳盡的講解,讓讀者親手體驗 ActiveX 控件的生命周期。 屬性、方法與事件的深入探討與實踐: 屬性是 ActiveX 控件與外部交互的窗口,方法是控件執行特定操作的指令,事件則是控件嚮外部發送通知的機製。本書將投入大量篇幅,詳細講解如何根據實際需求設計和實現這些核心要素。從基本數據類型的屬性,到自定義屬性頁的創建;從簡單的成員函數,到復雜的數據處理方法;從預定義的事件,到自定義的事件通知,都將通過豐富的實例代碼進行演示和講解。 用戶界麵設計與定製: 一個直觀易用的用戶界麵是 ActiveX 控件成功的關鍵。本書將教授讀者如何利用 MFC 提供的各種控件(如按鈕、文本框、組閤框等)以及對話框模闆,設計齣美觀且功能完善的控件屬性頁。讀者將學習如何處理用戶輸入,如何響應用戶操作,從而賦予控件豐富的交互能力。 ActiveX 控件的安全性考慮與防範: 在 Web 環境下,安全性是 ActiveX 控件開發中不可忽視的重要環節。本書將探討 ActiveX 控件可能麵臨的安全風險,並提供相應的防範措施和編程技巧,指導讀者如何編寫安全、可靠的控件,保護用戶數據和係統安全。 將 ActiveX 控件集成到 Web 頁麵: 成功開發齣 ActiveX 控件隻是第一步,如何將其有效地嵌入到 HTML 頁麵中,並與 JavaScript 等 Web 技術協同工作,是實現其應用價值的關鍵。本書將詳細講解在 HTML 中使用 `` 標簽引用 ActiveX 控件,以及如何通過 JavaScript 調用控件的方法、讀取控件的屬性,並響應控件觸發的事件,實現動態的 Web 交互。 實際應用案例分析與項目演練: 為瞭鞏固所學知識,本書精選瞭多個具有代錶性的 ActiveX 控件開發實例,涵蓋瞭數據可視化、文件處理、網絡通信、多媒體播放等多個領域。通過對這些案例的深入剖析和親手實踐,讀者將能夠將理論知識融會貫通,並學會如何將 ActiveX 技術應用於解決實際問題,開發齣滿足特定需求的 Web 應用。 調試技巧與性能優化: 良好的調試能力是高效開發的基礎。本書將介紹 Visual C++ 6.0 集成的強大調試工具,幫助讀者快速定位和解決代碼中的錯誤。同時,還將分享一些性能優化策略,指導讀者如何編寫齣高效、穩定的 ActiveX 控件,提升用戶體驗。 本書特色: 循序漸進,由淺入深: 從基礎概念到高級應用,邏輯清晰,易於理解,適閤不同層次的讀者。 理論與實踐相結閤: 既有深入的原理講解,又有豐富的實例代碼和項目演練,讓讀者在實踐中掌握技術。 貼近實際應用: 聚焦 ActiveX 控件在 Web 開發中的實際應用,幫助讀者解決開發中的痛點。 經典平颱的深入挖掘: 充分發揮 Visual C++ 6.0 和 MFC 框架的優勢,指導讀者掌握高效的開發方法。 無論您是初涉 ActiveX 編程的開發者,還是希望深化對 Web 控件開發理解的專業人士,《學用Visual C++6.0開發ActiveX》 都將是您不可或缺的學習夥伴。通過本書的學習,您將能夠自信地設計、開發和部署功能豐富、交互性強的 ActiveX 控件,為您的 Web 應用增添無限可能。

作者簡介

目錄資訊

讀後感

評分

評分

評分

評分

評分

用戶評價

评分

手中捧著的是一本《學用Visual C++6.0開發ActiveX》,封麵上充滿年代感的字體和設計,勾起瞭我年少時對編程世界無盡的好奇。那個年代,互聯網的觸角剛剛伸嚮韆傢萬戶,ActiveX技術作為微軟引領Web交互革命的利器,自然備受矚目。然而,對於一個初學者而言,要駕馭Visual C++6.0這樣強大的開發工具,並理解ActiveX這一相對復雜的概念,並非易事。這本書恰恰填補瞭這一空白。它並沒有急於展示代碼,而是先為我們構建瞭一個清晰的技術認知框架。書中對COM(Component Object Model)模型的深入剖析,讓我明白瞭組件化編程的思想,以及如何通過接口實現軟件的解耦和重用。特彆是對IUnknown接口的講解,包括QueryInterface、AddRef、Release這三個核心方法,它們構成瞭COM組件生命周期管理和引用計數的基石,這一點在我初次接觸時,就給我留下瞭深刻的印象。MFC框架的引入,極大地簡化瞭ActiveX控件的開發流程。作者非常細緻地演示瞭如何利用MFC ActiveX Control Wizard來快速生成控件的樁代碼,以及如何在生成的類中實現各種功能。我記得最清晰的是關於控件屬性和方法的實現,以及如何通過Property Sheet來為控件提供一個用戶友好的配置界麵。我還曾嘗試按照書中的指導,開發一個能夠響應鼠標事件的ActiveX控件,並通過JavaScript來調用它的方法,當控件在瀏覽器中成功互動時,那種技術實現的喜悅感油然而生。這本書不僅教授瞭技術,更重要的是,它傳遞瞭一種嚴謹的編程思維和解決問題的能力,讓我學會瞭如何將抽象的理論轉化為實際可運行的代碼,這對於我日後的技術發展至關重要。

评分

當我第一次拿到《學用Visual C++6.0開發ActiveX》這本書時,它散發齣的油墨香和那略顯復古的封麵設計,立即將我帶入瞭那個充滿技術革新浪潮的時代。當時,互聯網正在以驚人的速度改變世界,而ActiveX技術,作為微軟在Web交互領域的一項重要創新,自然引起瞭我極大的興趣。然而,要掌握這項技術,特彆是要將其與Visual C++6.0這樣一款強大的開發工具結閤起來,對於當時的我是個巨大的挑戰。這本書以其嚴謹的邏輯和循序漸進的講解,為我打開瞭通往ActiveX開發世界的大門。作者在書中,並沒有迴避COM(Component Object Model)模型這一ActiveX的核心技術。書中對COM接口、COM對象的生命周期管理,特彆是IUnknown接口的AddRef和Release方法在內存管理中的作用,都進行瞭深入而清晰的闡述。這讓我對組件之間的通信機製有瞭更為深刻的理解。MFC(Microsoft Foundation Classes)框架的應用,則讓原本復雜的COM編程變得相對容易。我至今仍清晰地記得,書中對於如何利用MFC ActiveX Control Wizard來快速生成ActiveX控件的骨架,以及如何在其基礎上添加自定義的屬性、方法和事件的詳細步驟。特彆是關於屬性的實現,比如如何定義一個可讀寫的字符串屬性,並通過“get”和“put”方法來訪問和修改它的值,以及如何設計屬性頁來提供一個直觀的配置界麵,這些內容都極大地開闊瞭我的視野。我曾經花費瞭大量的時間,按照書中的示例,成功地開發瞭一個能夠顯示動態文字的ActiveX控件,並將其嵌入到IE瀏覽器中進行測試。當控件成功運行,並在網頁上呈現齣我所期望的效果時,那種由技術實現帶來的成就感和滿足感是無法用言語來錶達的。這本書不僅傳授瞭技術知識,更重要的是,它培養瞭我獨立解決問題和係統性學習的寶貴能力。

评分

這本書的封麵設計充滿瞭九十年代末期特有的科技感,深藍色的背景搭配著銀白色的字體,標題“學用Visual C++6.0開發ActiveX”赫然醒目。當我第一次拿到它時,那種厚重感和紙張的特有氣味,就足以讓我對其中蘊含的知識充滿瞭期待。我記得那是一個悶熱的夏日午後,我坐在書桌前,小心翼翼地翻開第一頁。那些密密麻麻的文字和代碼,在當時的我看來,仿佛是通往未知世界的鑰匙。這本書不僅僅是一本技術手冊,它更像是一位經驗豐富的老師,耐心地引導著我一步步走進ActiveX開發的奇妙領域。我至今仍清晰地記得,書中關於COM組件、接口、以及IUnknown的詳細闡述,它們是如何構成ActiveX的基石,又是如何在瀏覽器中實現與原生代碼的交互,這些概念的清晰解析,讓我對Windows編程有瞭全新的認識。書中提供的每一個範例,都經過精心的設計,不僅貼閤實際應用,而且代碼風格嚴謹,注釋詳盡。我曾經花費瞭無數個夜晚,在電腦前敲擊著鍵盤,一遍又一遍地調試著書中的代碼,從最初的生澀到後來的熟練,每一點進步都讓我充滿成就感。這本書的魅力在於,它不僅僅教你如何“做”,更重要的是讓你理解“為什麼”。它深入淺齣地講解瞭C++語言的特性在ActiveX開發中的應用,以及MFC框架如何簡化瞭復雜的COM編程。即便是現在,當我迴顧起這段學習經曆,依然覺得受益匪淺。這本書為我打開瞭一扇新的大門,讓我看到瞭軟件開發更廣闊的可能性,也為我日後的職業生涯奠定瞭堅實的基礎。那種親手構建一個能夠在網頁中運行的交互式組件的喜悅,至今仍讓我懷念。它是一本真正能夠引領初學者入門,並且能夠提供深度技術洞察的經典之作。

评分

拿到這本書,立刻被它那種厚實而富有質感的紙張所吸引,封麵上“學用Visual C++6.0開發ActiveX”的字樣,仿佛是在嚮我宣告一個充滿挑戰又極具魅力的技術世界。我當時對ActiveX的概念幾乎是零基礎,隻知道它是一種可以在網頁中嵌入並運行的技術,但具體如何實現,卻一無所知。這本書的齣現,恰好滿足瞭我迫切的學習需求。書中對Visual C++6.0這個經典的開發環境的介紹,讓我對當時的編程環境有瞭直觀的瞭解,雖然現在看來界麵略顯老舊,但在那個年代,這無疑是強大的開發利器。最讓我印象深刻的是,作者並沒有直接跳到代碼層麵,而是先詳細講解瞭ActiveX的核心概念,比如COM(Component Object Model)模型,這是一種麵嚮對象的可編程模型,它為軟件組件的互操作性提供瞭標準。書中對GUID(Globally Unique Identifier)、CLSID(Class Identifier)以及ProgID(Programmatic Identifier)的解釋,以及它們在ActiveX組件注冊和調用中的作用,讓我徹底理解瞭組件的身份標識機製。接著,MFC(Microsoft Foundation Classes)在ActiveX開發中的應用,被闡述得淋灕盡緻。MFC提供瞭一係列封裝好的類,極大地簡化瞭COM編程的復雜性,作者通過大量的示例,演示瞭如何利用MFC生成ATL(Active Template Library)項目,並逐步構建可重用的ActiveX控件。書中對控件生命周期管理、事件處理、屬性頁設計等方麵都有詳盡的論述,這些都是開發一個功能完善的ActiveX控件必不可少的環節。我記得自己曾跟著書中的步驟,成功地創建瞭一個能夠繪製各種圖形的ActiveX控件,並將其嵌入到IE瀏覽器中進行測試,那種成就感是無法用言語來形容的。這本書不僅教授瞭技術,更培養瞭我獨立解決問題的能力,讓我學會瞭如何閱讀API文檔,如何分析錯誤信息,以及如何通過調試來找到問題的根源。

评分

這本書的封麵,在那個年代,充滿瞭濃厚的科技感,深邃的藍色背景和銀色的標題“學用Visual C++6.0開發ActiveX”仿佛在召喚著我去探索未知的領域。我清楚地記得,當我第一次拿到這本書時,它的厚重感和紙張的質感,都預示著其中蘊含著豐富的知識。當時,ActiveX技術作為微軟在Web開發領域的一項重要革新,吸引瞭我的目光,但我對於如何將其與Visual C++6.0這個強大的開發工具相結閤,卻感到睏惑。這本書的齣現,恰好為我提供瞭係統性的學習路徑。作者在書中,並沒有跳過基礎知識,而是先詳細闡述瞭COM(Component Object Model)模型,這是ActiveX技術的核心。書中對COM接口、COM對象的生命周期管理,特彆是IUnknown接口的AddRef和Release方法在內存管理中的作用,都有非常清晰和透徹的講解。這對於我理解組件之間的通信機製至關重要。MFC(Microsoft Foundation Classes)框架的應用,則大大簡化瞭ActiveX控件的開發過程。我記得書中對如何使用MFC ActiveX Control Wizard 來生成控件的骨架,以及如何在其基礎上添加屬性、方法和事件的步驟,都進行瞭詳盡的演示。尤其是關於屬性的實現,比如如何定義一個可讀寫的整數屬性,並通過“get”和“put”方法來訪問和修改它的值,以及如何設計屬性頁來提供一個直觀的配置界麵,這些都讓我受益匪淺。我曾經花費瞭大量的精力,按照書中的示例,成功地開發瞭一個能夠響應用戶點擊事件的ActiveX控件,並將其嵌入到IE瀏覽器中進行測試。當控件成功運行,並能夠與網頁中的JavaScript進行交互時,那種由技術實現帶來的成就感是難以形容的。這本書不僅僅是一本技術手冊,更是一種學習方法和編程思想的引導。

评分

捧著這本《學用Visual C++6.0開發ActiveX》,一股淡淡的紙墨香伴隨著我對技術探索的熱情撲麵而來。那是一個PC機開始普及,互聯網浪潮方興未艾的時代,ActiveX技術如同一顆璀璨的新星,吸引瞭無數渴望構建更豐富Web體驗的開發者。當時的我,對於Visual C++6.0這款經典的開發工具以及ActiveX這一新興的技術概念,都充滿瞭探索的衝動,但又感到一絲畏懼。這本書的齣現,恰好滿足瞭我的迫切需求。作者並沒有一開始就拋齣晦澀的代碼,而是循序漸進地介紹瞭ActiveX的曆史背景、應用場景以及它在微軟技術體係中的地位。隨後,核心內容——COM(Component Object Model)模型被深入淺齣地講解。書中對於COM接口、COM對象的生命周期管理,特彆是IUnknown接口的QueryInterface、AddRef、Release這三個關鍵方法的詳解,讓我明白瞭組件之間如何進行通信和資源管理。MFC(Microsoft Foundation Classes)框架在ActiveX開發中的作用,在這本書中得到瞭充分的體現。作者詳細演示瞭如何利用MFC ActiveX Control Wizard 來快速生成ActiveX控件的模闆,並在模闆的基礎上添加自定義的屬性、方法和事件。我特彆記得,書中關於如何實現屬性的“get”和“put”方法,以及如何設計屬性頁來為控件提供一個直觀的配置界麵的講解,都非常實用。我曾經按照書中的指導,成功開發瞭一個能夠繪製圓形的ActiveX控件,並將其嵌入到IE瀏覽器中進行測試。當圓在網頁上成功顯示並可以根據JavaScript的指令改變顔色時,那種技術實現的喜悅感讓我至今難忘。這本書不僅傳授瞭技術,更重要的是,它培養瞭我嚴謹的邏輯思維和解決復雜問題的能力。

评分

當我再次翻開這本《學用Visual C++6.0開發ActiveX》,那些泛黃的紙頁仿佛散發著九十年代末期特有的信息時代氣息。那時的我,對互聯網技術充滿瞭憧憬,而ActiveX,作為連接Web世界和本地PC能力的橋梁,自然引起瞭我的極大興趣。然而,要從零開始學習,卻感到無從下手。這本書以其清晰的結構和詳實的講解,為我指明瞭方嚮。作者並沒有迴避ActiveX開發中的核心挑戰——COM(Component Object Model)。書中對COM的講解,深入淺齣,從最基本的接口概念,到 GUID、CLSID、ProgID 這些“身份標識符”,再到 IUnknown 接口的 AddRef 和 Release 方法如何管理對象的生命周期,每一個環節都講解得非常透徹。這為理解ActiveX的運行機製打下瞭堅實的基礎。MFC(Microsoft Foundation Classes)框架的應用,則讓COM編程變得不再那麼令人畏懼。作者詳細演示瞭如何利用 MFC ActiveX Control Wizard 來生成一個ActiveX控件的框架,以及如何在框架內實現屬性、方法和事件。我至今仍然清晰地記得,書中關於如何定義控件的屬性,以及如何為屬性創建“get”和“put”方法,還有如何設計屬性頁來提供用戶友好的配置界麵。我曾經按照書中的示例,嘗試開發一個能夠顯示彩色方塊並可以改變顔色的ActiveX控件,並通過JavaScript來調用其方法,當控件成功嵌入網頁並按預期工作時,那種成就感是難以言喻的。這本書不僅僅是技術的傳遞,更是一種學習方法的啓示,它教會我如何係統地學習一項新技術,如何分解復雜問題,並一步步加以解決。

评分

這本書的封麵設計,在當時的我看來,簡直就是科技的代名詞。深邃的藍色背景,搭配著銀色的字體,標題“學用Visual C++6.0開發ActiveX”傳遞齣一種專業而嚴謹的氣息。當我第一次拿到這本書時,它散發齣的油墨香氣,至今仍能喚起我當年的學習熱情。我當時對於ActiveX的概念,雖然有所耳聞,但對其背後的技術原理和開發過程卻知之甚少。這本書,就像一位經驗豐富的嚮導,帶領我一步步探索這個未知的領域。作者在書中對於COM(Component Object Model)的講解,尤其讓我印象深刻。COM是ActiveX的基礎,它提供瞭一種標準化的接口機製,使得不同的軟件組件能夠互相通信。書中詳細介紹瞭GUID、CLSID、ProgID這些用於標識組件的唯一標識符,以及IUnknown接口的AddRef和Release方法在內存管理中的作用。這些看似枯燥的概念,在作者的筆下變得生動而易於理解。MFC(Microsoft Foundation Classes)的引入,則將COM編程的復雜性大大降低。我記得書中對於如何利用MFC ActiveX Control Wizard來快速生成控件的骨架,以及如何在該骨架上添加屬性、方法和事件的步驟,都講解得非常詳細。尤其是對於屬性的實現,比如如何定義一個整數屬性,並通過“get”和“put”方法來訪問和修改它的值,以及如何創建一個屬性頁來可視化地配置這些屬性,這些內容都為我打開瞭新的視野。我曾經花費瞭大量的時間,跟著書中的例子,開發瞭一個能夠進行簡單數據可視化的ActiveX控件,並將其嵌入到IE瀏覽器中進行測試。當控件成功運行,並在網頁上顯示齣預期的圖形時,那種由技術帶來的滿足感是難以言喻的。這本書不僅僅是一本技術教材,它更是一份關於如何係統性學習和掌握一項復雜技術的寶貴經驗。

评分

我翻開這本書,一股油墨的清香撲鼻而來,封麵上“學用Visual C++6.0開發ActiveX”幾個字,喚起瞭我對過去那些充滿探索精神的編程時光的迴憶。那個年代,互聯網浪潮剛剛興起,ActiveX技術作為微軟在Web開發領域的一項重要創新,吸引瞭無數開發者。而Visual C++6.0,無疑是那個時代開發Native應用和組件的王者。這本書非常巧妙地將兩者結閤在一起,為我們提供瞭一套係統性的學習路徑。我尤其欣賞作者在講解COM模型時所采用的方法,它並沒有迴避COM的復雜性,而是通過清晰的邏輯和循序漸進的步驟,將抽象的概念變得易於理解。比如,書中對於引用計數、接口查詢、聚閤以及綫程模型等關鍵概念的闡述,都做得相當到位。對於新手來說,理解這些概念是掌握ActiveX開發的基礎。MFC框架在這本書中扮演瞭關鍵角色,作者詳細介紹瞭如何利用MFC提供的MFC ActiveX Control Wizard來快速生成ActiveX控件的骨架,以及如何在生成的類中實現屬性、方法和事件。書中對屬性頁的設計也進行瞭深入的探討,如何利用Property Page Wizard來創建用戶友好的屬性設置界麵,這對於增強控件的可用性至關重要。我記得在學習過程中,我曾嘗試實現一個能夠播放動畫的ActiveX控件,書中關於如何處理窗口消息、如何進行GDI繪圖以及如何與JavaScript進行交互的章節,都給瞭我極大的幫助。調試的過程雖然充滿挑戰,但每當成功運行一個功能時,內心的喜悅是難以言喻的。這本書不僅僅是技術的堆砌,更是一種思維方式的引導,它教會瞭我如何將復雜的問題分解,如何利用現有的工具和框架來解決問題,以及如何寫齣健壯、可維護的代碼。它是一本值得反復研讀的經典之作,即使在今天,其蘊含的很多思想和技術仍然具有參考價值。

评分

當我的手指拂過《學用Visual C++6.0開發ActiveX》的封麵,那份厚重感和紙張的觸感,瞬間將我帶迴瞭那個充滿激情的年代。我仍然清楚地記得,當時我是一名剛踏入編程領域不久的學生,對各種新興技術充滿瞭好奇。ActiveX,作為微軟在互聯網時代的一項重要技術,自然引起瞭我的極大關注。然而,要理解並掌握它,需要一種係統的、深入的學習方法。這本書正是這樣一本能夠滿足我需求的指南。它的開篇並非直接灌輸代碼,而是先從宏觀上介紹瞭ActiveX的定位、優勢以及與Java Applet等技術的對比,為我建立瞭一個清晰的認知框架。隨後,作者循序漸進地深入到COM(Component Object Model)的底層原理,這是一個關鍵的知識點,它構成瞭ActiveX技術的核心。書中對COM接口、IUnknown接口的生命周期管理、Dual Interface、以及DispInterface的詳細講解,讓我對組件之間的通信機製有瞭透徹的理解。MFC框架的應用則將這一切變得觸手可及。作者非常細緻地演示瞭如何使用MFC AppWizard和MFC ActiveX Control Wizard來創建一個基礎的ActiveX控件項目,並逐步添加屬性、方法和事件。我對書中關於屬性的實現方式,特彆是對“get”和“put”方法的使用,以及如何定義屬性頁來提供一個直觀的配置界麵,印象尤為深刻。還記得我曾經按照書中的例子,嘗試開發一個可以嵌入到網頁中進行數據可視化的ActiveX控件,通過調用Windows API進行繪圖,並將其中的數據通過COM接口暴露給JavaScript,當一切成功運行時,那種徵服技術的成就感讓我難以忘懷。這本書不僅僅傳授瞭技術,更重要的是,它培養瞭我麵對復雜技術問題時的耐心和解決問題的能力,教會瞭我如何從零開始構建一個完整的軟件組件。

评分

评分

评分

评分

评分

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2026 onlinetoolsland.com All Rights Reserved. 本本书屋 版权所有