<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Windows TerminalWindows 全新終端

          聯(lián)合創(chuàng)作 · 2023-09-30 11:35

          Windows Terminal 是一個(gè)全新的、流行的、功能強(qiáng)大的命令行終端工具。包含很多來(lái)社區(qū)呼聲很高的特性,例如:多 Tab 支持、富文本、多語(yǔ)言支持、可配置、主題和樣式,支持 emoji 和基于 GPU 運(yùn)算的文本渲染等等。同時(shí)該終端依然符合我們的目標(biāo)和要求,以確保它保持快速、高效,并且不會(huì)消耗大量?jī)?nèi)存和電源。

          Windows 控制臺(tái)主機(jī)

          Windows 控制臺(tái)主機(jī)程序 conhost.exe是 Windows 原生的命令行體驗(yàn),它實(shí)現(xiàn)了 Windows 的命令行基礎(chǔ)架構(gòu),同時(shí)提供 Windows Console API,輸入引擎、渲染引擎和用戶配置信息。本項(xiàng)目中的控制臺(tái)主機(jī)代碼實(shí)際上是 Windows 中的 conhost.exe 的源碼。

          控制臺(tái)的主要目的是對(duì)已有控制臺(tái)應(yīng)用保持向后兼容性。自從 2014 年有了 Windows 命令行以來(lái),開發(fā)團(tuán)隊(duì)已經(jīng)給控制臺(tái)增加了很多新特性,包括窗口透明化、基于行的選擇以及支持 ANSI / 虛擬終端序列 Virtual Terminal sequences24-bit color, 以及一個(gè) Pseudoconsole ("ConPTY") 等等。

          但是由于控制臺(tái)主要的目標(biāo)是維護(hù)向后兼容性,所以盡管這么多年社區(qū)一直希望我們能添加一些特性(例如 Tabs),但是我們不可能再增加這些特性。諸多限制讓我們決定開發(fā)一個(gè)全新的 Windows Terminal。

          本項(xiàng)目包含:

          • Windows Terminal
          • Windows Terminal Preview
          • Windows 控制臺(tái)主機(jī) (conhost.exe)
          • 上述兩項(xiàng)目的共享組件
          • ColorTool
          • 示例項(xiàng)目 將展示如何使用 Windows Console APIs

          共享的組件

          在對(duì)控制臺(tái)進(jìn)行大修的同時(shí),我們對(duì)其代碼庫(kù)進(jìn)行了大量的改進(jìn)。主要是將邏輯實(shí)體清晰地劃分為模塊和類,引入了一些關(guān)鍵的擴(kuò)展點(diǎn),用更安全、更高效的STL容器替換了幾個(gè)舊的、自制的集合和容器,并通過(guò)使用微軟的 Wil header 庫(kù)使代碼更簡(jiǎn)單、更安全。

          這項(xiàng)大修工作導(dǎo)致創(chuàng)建了幾個(gè)對(duì) Windows 上的任何終端實(shí)現(xiàn)都有用的關(guān)鍵組件,包括一個(gè)新的基于 DirectWrite 的文本布局和渲染引擎、一個(gè)能夠存儲(chǔ) UTF-16 和 UTF-8 的文本緩沖區(qū)以及一個(gè)VT解析器/發(fā)射器。

          構(gòu)建一個(gè)全新終端

          當(dāng)開始構(gòu)建全新終端應(yīng)用程序時(shí),我們探索并評(píng)估了幾種方法和技術(shù)堆棧。最終決定繼續(xù)使用 C++ 開發(fā),并通過(guò)共享上述的現(xiàn)代化組件來(lái)實(shí)現(xiàn)我們的目標(biāo),并基于現(xiàn)代 Windows 應(yīng)用程序平臺(tái)和 UI 框架之上進(jìn)行開發(fā)。

          此外,我們意識(shí)到終端的渲染器和輸入堆棧可以構(gòu)建成可重用的 Windows UI 控件,方便其他人可以將其合并到其他應(yīng)用程序中。

          源碼構(gòu)建

          該項(xiàng)目使用 git submodules 包含一些相關(guān)依賴,要確保子模塊被更新,請(qǐng)?jiān)跇?gòu)建器使用如下命令檢查:

          git submodule update --init --recursive

          OpenConsole.sln 需要在 Visual Studio 構(gòu)建或者是使用 MSBuild 在命令行中構(gòu)建。命令行構(gòu)建的方法如下:

          nuget restore OpenConsole.sln
          msbuild OpenConsole.sln

          我們還在 tools 目錄下提供了一組常用的腳本可以幫助自動(dòng)化處理構(gòu)建和運(yùn)行測(cè)試的過(guò)程。

          a??Windows Terminala???????????????′¢??????

          瀏覽 25
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲欧美色图在线 | 亚洲中文字幕高清 | 宫日日日干干干av | 91爱爱网址 | 影音先锋一区二区三区 |