使用 Visual Studio GDB 擴充套件在 Visual Studio 上遠端偵錯 Linux 上的 C/C++ 程式

在 Linux 上開發 C/C++ 的應用程式,或許你會直接(本機或遠端)登入 Linux,打開編輯器寫完程式碼後,就用 gcc/g++ 來編譯程式,遇到要除錯(debug)的時候,則會選擇使用 gdb 來進行除錯。現在,如果你剛好也很喜歡 Visual Studio,你可以不必改變習慣,用 Visual Studio 寫程式、然後遠端送到 Linux 上編譯、甚至還能接上 gdb 來除錯。這個對於開發像是嵌入式系統、或是 IoT 裝置的程式等等就可以多多利用 Visual Studio 強大的 IDE 能力。 圖: 應該有不少在 Linux 上寫程式的開發人員是這麼工作的吧? 如何做? 首先,你必須使用 Visual Studio 2015,你可以使用免費版[1]的 Visual Studio 2015 Community 或是其它更高等級的版本,記得在安裝時要勾選 Visual C++ 以及 C++ 跨平台行動開發這兩個元件: 圖: 安裝 Visual C++ 然後只要再安裝 Visual Studio GDB Debugger 這個擴充套件,就能夠在 Visual…

0

初探 Roslyn 編譯器平台 (2): 使用 Roslyn 提供的 Syntax API 以及 Compilations 物件類別

Roslyn 專案的簡介請閱讀前一篇。 安裝 Roslyn SDK (Preview) 在前一篇文章中我們介紹了在既有的 Visual Studio 2013(或是已經內建整合支援的 Visual Studio “14″)裡安裝 Roslyn End User (Preview) 的 Visual Studio 插件,讓一些分析程式碼的工作交給 Roslyn 來處理。而在這篇文章要介紹的是,如何使用 Roslyn 所提供的 APIs 來做到這些程式碼分析的工作。要使用這些 APIs,除了可以下載安裝 Roslyn SDK (Preview) 的 Visual Studio 插件,就可直接建立含有 Roslyn 相關套件的專案範本: 也可以在專案中,透過 NuGet 套件管理系統來安裝 Roslyn NuGet 套件: Install-Package Microsoft.CodeAnalysis -Pre 一樣可以安裝相關套件參考,並在程式中使用這些功能: Syntax API 編譯器要對程式碼進行編譯,當然要先確定使用者寫的程式的語法(syntax),除了判斷語法是否正確之外,也要瞭解它的結構——哪些是變數、保留字、字串或數值等等。在 Roslyn 中提供的 Syntax API 就提供了解析(parse)語法、建立語法樹狀結構(syntax…

0

初探 Roslyn 編譯器平台 (1): 從認識到使用

在 //Build/ 2014 開發者大會上,有 「C# 之父」之稱的 Anders Hejlsberg 在 Keynote 上公佈並且現場開源了 Roslyn 編譯器平台專案。在現在的開發技術中,編譯器的技術不是只是用來把開發者撰寫的程式碼變成平台可以執行的東西而已,它還可以分析程式碼的語法(syntax)、語意(semantics)等等,除了幫助使用者更瞭解他自己寫了些什麼之外,還可以應用在 IDE(如:Visual Studio)的開發輔助技術,像是語法提示的 IntelliSense、產生合適的程式碼、移至定義(Go to Definition)、尋找所有參考(Find all references)等等功能,當然還有與其它函式庫繫結、產生平台可執行程式碼等功能。所以一個編譯器的 pipeline 可能長成這樣: 而 Roslyn 這個專案最主要有兩個任務: 提供一個開源的 .NET 編譯器,可以讓人瞭解這個編譯器黑盒子做了什麼事情,甚至是除了 Visual Studio 之外的 C#/VB.net 編譯器或開發工具(如:Mono project)都可以整合使用。 作為一個可以讓開發人員以 API 形式呼叫編譯器內某功能的編譯器平台 所以有了 Roslyn 這個編譯器平台之後,做為開發人員,你就可以透過 APIs 的方式來使用編譯器 pipeline 中的任何一個功能,而 Roslyn 提供的 APIs 如下圖所示: 在開發中使用 Roslyn  如果您現在已經是使用 Visual Studio 2013 以及…

0

精通 Windows Store App / Windows Phone App 的 ListView / ListBox 控制項 (2)

在前一篇中瞭解了 ListView / ListBox 控制項的基本用法,不過如果要實際開發 app 其實是不太夠用的,所以這篇再做深入一點 (但也不會太困難) 的介紹。 處理不單純的資料結構 前一篇裡我們舉的例子都是顯示簡單的字串資料,但很多時候都要處理更複雜的資料結構,比方說像 twitter 類型的 app 那樣顯示 tweet 列表,面對這樣的狀況,我們通常會寫一個物件類別來表示資料結構,像是這樣:(我過份簡化了) 我們用這個資料結構表示一則訊息的資料結構,包括 id、顯示名稱、訊息、大頭照 URL 以及發文時間。接著就是要設計一下 ItemTemplate 的呈現方式,至少要呈現大頭照、名字、訊息還有發文時間,所以我們修改了 XAML 檔案成像是下面這樣: 跟前一篇 ListView / ListBox 裡的 ItemTemplate 有很大的不同,這裡放入了一個 <Image /> 以及三個 <TextBlock /> 控制項用來顯示訊息資料,而最大的不同是,這些控制項的內容綁定資料的方式也有稍稍不同,這裡的 Binding 語法都加了參數,先簡單地想,它就是對應到資料結構的成員,所以 {Binding Message} 就是把資料中的 Message 成員內容作綁定,所以若填入的資料如下: 那顯示的畫面會是: Windows Store App 顯示訊息資料後的 ListView (Windows Store App) Windows…

0

精通 Windows Store App / Windows Phone App 的 ListView / ListBox 控制項 (1)

在微軟的用戶端應用程式開發框架中,常會使用 XAML 技術做為介面設計語言,比方說:WPF、Silverlight、Windows Phone App、Windows Store App。許多過去未接觸過 XAML 的程式開發人員,對於 XAML 中許多控制項採用的 MVVM (Model-View-ViewModel) 設計模式感到不熟悉,一時間感覺不好上手,其實它並不會特別複雜困難,本系列文章將由淺至深,以 ListView / ListBox 控制項為例,一步步瞭解如何精通使用這個控制項,並且體會 MVVM 設計模式。 顯示資料列表 使用 ListView 顯示資料列表 在寫 Windows Store App / Windows Phone App (後面以 Windows App 簡稱之) 時,由於 Modern Design 的「Content Before Chrome」(內容優先) 的設計準則,或是基本的需要,常常需要顯示一串資料,例如訊息列表、聯絡人列表、搜尋結果列表等等,還好 XAML 提供了 <ListView /> (Windows Store App) 及 <ListBox /> (Windows Phone…

0

[Windows市集應用程式] 解構「格線應用程式」(Grid App) 範本 – 使用 C#

說明 開啟Windows市集應用程式的開發工具之後,可以看到內建的應用程式範本有一個「格線應用程式」(英文版是 Grid App) 的專案範本,這個範本是一個最基本以 modern style 設計的app範本,不過範本預設會產生不少程式碼,本文將逐一解構這個範本的結構,讓使用此範本開發的開發人員能夠更快上手。 本文以 C# 版本作介紹。JavaScript 版本在這裡 索引 範本做了什麼 範本產生的檔案 如何開始客製化 程式的進入點 客製化資料 首頁 群組頁面 資料細節頁面 補完計劃 範本做了什麼 格線應用程式是一個三層式的頁面架構,它最適合用來顯示一系列具有分類 (同一分類的資料為同一群組) 的資料,像是按照不同口味分類的菜單、食譜,或是不同類型的商品,也可以是按照隊伍區分的少女團體等等這類型的資料。 這個 app 的第一頁就是按群組分類的資料顯示,如下圖所示: 首頁 – 資料按群組排列 這頁可以看到資料按照群組 (group) 的方式排列,每一個群組有一個群組名稱,如果以滑鼠點擊 (或是觸控) 群組名稱 (如圖中的 Group Title 1 >) 之後,App 便會進入到第二頁 – 該群組的頁面: 群組頁面 – 顯示群組資料 在群組頁面裡,可以看到最前面的區域是顯示群組的內容,接著後面再擺放該群組內的資料,比起首頁來說,每個資料顯示更多的訊息。而不論是從首頁,還是群組頁面中,點擊任何一個資料都會進入資料細節頁面: 資料細節頁面 – 顯示資料完整訊息 資料細節頁面當然就是最完整呈現該資料最完整的內容囉,而在這一頁按下返回的箭頭,就會回到首頁或是群組頁面,端看是從哪裡進入的。 而此格線範本還針對「貼齊畫面」(snapped…

0

我愛微笑單車 Windows Phone App 開發心得分享

最近一方面為了自用,另一方面為了實驗新的 Windows Phone Store 的開發後台,所以做了一個「我愛微笑單車」(英文版: I Love YouBike) 的 Windows Phone app,同時支援 WP7 及 WP8,雖然還有很多功能沒做完,不過應該可以把我完成這個 App 的心得分享給大家。 同時支援 WP7/WP8 的問題 若您在 Windows Phone 7 時期就已經開發過 Windows Phone app,那不論是否有更新 app 或是特別對 WP8 做新的版本,WP8 的使用者還是能夠在市集裡找到你的應用程式,並且安裝來使用都不會有什麼問題,而且 WP7 的 app 即使不做任何的調整,由於 WP8 機器效能不錯,執行這些 WP7 app 甚至感覺變快了不少,硬要說有什麼美中不足的地方 (先撇開不能用 WP8 的新功能),那就是解析度的小問題了。 在 WP7 時代,所有的 Windows Phone 手機的螢幕解析度都是 WVGA (800×480),不過到了 WP8 之後,系統除了…

0

Metro Style App: 使用 WebAuthenticationBroker 做 Facebook 帳號驗證

因為 Facebook 的流行,現在很多開發人員都會運用 Facebook 帳號作為應用程式的身份驗證,在 WinRT 中有一個很好用的一組 API: WebAuthenticationBroker,它提供了一個架構,讓應用程式很容易就能完成 OAuth 的驗證機制。過去要在應用程式中完成 OAuth 驗證,總是會很麻煩地在應用程式或網頁瀏覽器之間切換 (因為網站登入及授權須在網頁中完成) ,容易造成使用者的混淆,這組 API 讓整個驗證的過程皆在應用程式的對話盒中完成,可以讓使用者留在應用程式中完成一切的動作。 在 Metro Style App 中使用 WebAuthenticationBroker 以 Facebook 為例 參考 Facebook 的開發文件,整個驗證的工作可以歸納成幾件事情: 註冊你的應用程式,取得一個應用程式的身份,得到一個「應用程式 ID」 視你應用程式的需要,組合成一個 URL,接著讓使用者透過這個 URL 來授權你的應用程式 (使用者須登入 facebook) 完成授權,取得 access_token 以便呼叫 facebook APIs。(當然要處理授權失敗的狀況) 這些動作要使用 WebAuthenticationBroker 來完成便非常簡單,直接來看程式碼 (JavaScript) 就好瞭解了: 值得注意的是,在 authUrl 中的 display=popup 參數一定要設定,才會符合 Metro Style App…

0

Metro Style App 開發: 使用 C/C++

Windows 8 新增了一個應用程式開發平台--Metro Style App,開發人員在開發了這類的 app 之後便可以送交至 Windows Store,一般消費者便可以從 Windows Store 上下載安裝這些通過審查上架成功的 app,這篇文章是幫助使用 C/C++ 程式語言的開發人員,整理如何上手 Metro Style App 的開發。 從這張圖可以看得出來,若是使用 C/C++ 作為程式開發語言,則是搭配 XAML 來作應用程式介面的設計: Windows 8 應用程式開發架構圖 XAML 是一種 XML 格式的檔案,用來描述操作介面(User Interface),檔案內容大概像是這樣: <Page x:Class="Application1.BlankPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:Application1″ xmlns:d="http://schemas.microsoft.com/expression/blend/2008″ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006″ mc:Ignorable="d"> <Grid Background="{StaticResource ApplicationPageBackgroundBrush}"> <Button x:Name="Button1″ Content="Click" HorizontalAlignment="Left" Margin="20,20,0,0″ VerticalAlignment="Top" Width="75″ /> </Grid></Page> 這樣便會在畫面上有一個按鈕的元件。 從 .NET…

0

[WP7開發] 處理 JSON 字串

目前許多網路服務、API 都喜歡使用 JSON 格式的字串做為交換格式,在 Windows Phone 上開發網際網路應用程式時,幾乎不可避免地得處理 JSON 格式的字串,這時可以使用一套高效能的第三方套件--Json.NET 來處理。 安裝套件 要在 Windows Phone 專案中加入 Json.NET 這個套件十分容易,因為 Visual Studio 已經與 NuGet 套件工具整合,所以可以直接在 Solution Explorer 的視窗內,於專案下的 References 按滑鼠右鍵,選擇 Add Library Package Reference…: 這時便會開啟套件安裝對話盒,在左方選擇 Online,然後於搜尋框中輸入 Json.NET 便可以找到 Newtonsoft.Json 的套件了,這時再按下 Install 來安裝它。 等待它安裝完畢,就可以將安裝套件的對話盒關閉了。 不過,當它自動安裝完畢時,自動帶入 References 的函式庫並不是適合 Windows Phone 環境運作的,所以得先將原本自動帶入的 Newtonsoft.Json.Silverlight 移除掉,再到 References 上右鍵選擇 Add References…,從專案資料夾下找到 packages > Newtonsoft.Json.4.0.2…

0