• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            專職C++

            不能停止的腳步

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(28)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            #

            說明

            因為工作需要分析protobuf的數據,google了一下,我個人沒有找到合適的,就參考google protobuf文檔,寫了一個分析工具。這個項目用的是C++Builder XE10.2, win64實現。 
            因為是臨時定的代碼,就寫的很隨意了,很少注釋。

            編譯工具

            C++ Builder XE 10.2

            說明

            • 由于C++Builder自帶的C++編譯不支持C++11,只好選擇64位版本。
            • 包中已經帶有已經編譯好的 prototools.x64.exe , 可以在64位系統下直接運行。
            • 使用的時候,對應的樹節點,請點右鍵,做相應的選擇。
            • 注意,要分析數據是原始生成的protobuf數據,保存到文件。

            代碼地址

            https://code.csdn.net/zdhsoft/protobuf_tools/tree/master

            posted @ 2017-08-19 21:51 冬瓜 閱讀(1348) | 評論 (0)編輯 收藏

            簡述

            在開發過程中,如果代碼很整齊的話,那么這個代碼就會看起來比較舒服。就像看到一個整潔的屋子一樣。 
            其中,=,:等對齊,則是一個重要的整潔處理。

            Better Align

            這個就是vscode的對齊插件,啟動vscode,進入插件管理,沒有安裝的話,搜索一下,很快就有了。然后安裝即可。vscode的插件管理真是做的很不錯,易用。

            使用

            安裝完成后,就可以使用了 
            將光標移到要對齊的代碼塊,然后安一下ctrl+shift+p,然后輸入命令,就立馬對齊了。 
            如下圖演示 
            Comma-first sytle 
            Comma-first sytle 
            Trailing comment 
            Trailing comment 
            Align within selection 
            Align within selection

            快捷鍵設置

            如果老是輸入命令,確實很麻煩,可以配置快捷鍵 
            我這里配置的是ctrl+alt+= 
            如下圖:文件->首選項->鍵盤快捷方式,如下圖 
            這里寫圖片描述 
            進入之后:在鍵盤快捷方式編輯中,點擊keybindings.json, 
            這里寫圖片描述
            進入json設置后 
            這里寫圖片描述
            然后我輸入ctrl+alt+= 
            這里寫圖片描述
            然后輸入操作內容

                {
            "key": "ctrl+alt+oem_plus",
            "command": "wwm.aligncode",
            "when": "editorTextFocus && !editorReadonly"
            }
            • 1
            • 2
            • 3
            • 4
            • 5
            • 1
            • 2
            • 3
            • 4
            • 5

            這里寫圖片描述 
            這樣,就可以使用快捷鍵操作了

            posted @ 2017-08-14 12:36 冬瓜 閱讀(4266) | 評論 (0)編輯 收藏

            原文地址:http://www.infoq.com/cn/news/2017/08/vs2017-153

            從Visual Studio 2017 15.3預覽版的發布時間表中可以看出,Microsoft似乎馬上要發布這一版本的正式版。過去幾周對VS2017 15.3的改動主要集中在問題修復上,開發人員可以注意到,最近的VS2017 15.3 Preview版本提供了對C# 7.1的支持,對C++語言服務的改進,以及對IDE自身的幾處改動。通過幾個重要的問題修復,提高了穩定性和性能。

            C++開發人員將看到一些IDE的改動,例如一些常用模板的位置發生了改變。基于Win32的項目現在可以在Windows 桌面類別下找到。Windows控制臺和桌面程序模板在創建過程中不需要調用向導,可以分別創建他們各自的項目。Windows桌面向導可供需要的人員使用。

            15.3的Preview目前已經支持C# 7.1的語言特性。InfoQ的首席編輯Jonathan Allen分兩部分對這些特性進行了深入介紹。第一部分關于異步主函數(Async Main)和默認表達式(Default Expressions),第二部分探討了推導元組名(Infer Tuple Names),以及使用泛型的模式匹配(Pattern-matching with Generics)。有了15.3 Preview,開發人員現在可以在VS2017中體驗這些特性。

            一個很有用的特性是增加了信息欄。如果有一個安裝的擴展程序運行不正常,信息欄將給出通知,允許用戶決定是否禁用有問題的擴展程序,或者不管它。

            VS2017 15.3增加的其他特性包括命令行工具vswhere.exe。可以使用該工具獲得VS2017安裝實例的信息。該工具在15.2版本中首次出現,但是在15.3版本已經被修改,不再默認顯示VS2017 Preview的實例。要獲得預覽版的安裝信息,需要加入命令行參數prerelease。

            修復的問題有:

            • 啟用輕量級解決方案負載可以減少構建解決方案的時間
            • 修復了解決方案管理器工具窗口,這樣文件自動定位功能可以正常運行
            • 各種穩定性方面的改進和問題修復

            如往常一樣,不建議將Visual Studio預覽版用于生產系統。感興趣的開發人員現在可以下載Visual Studio 2017 15.3 Preview,也可參看完整的版本說明

            查看英文原文: Visual Studio 2017 15.3 Preview Nears Final Release

            posted @ 2017-08-11 20:00 冬瓜 閱讀(975) | 評論 (0)編輯 收藏

            之前,都是在32位Android手機上,做測試。然后搞了一個64位手機,就不行了。

            分析后,先是報:is 32-bit instead of 64-bit

            然后,再自己的CPP的庫中,修改Application.mk,將APP_ABI :=armeabi改為APP_ABI :=armeabi arm64-v8a

            這樣生成的時候,就會得到兩個版本的so

            第一種情況解決后,第二種情況又來了,就是找不到lib

            原來,我是通過/data/data/com.xxx.xxx/lib訪問so的,結果在64位安裝后,lib這個是無效的,然后就加載失敗。

            最后通過ApplicationInfo取到。

            1. public static String GetNativePath() {  
            2.     String ss = m_Context.getApplicationInfo().nativeLibraryDir;  
            3.     if(ss == null) ss = "/data/data/com.hxxx.yyy/lib";  
            4.     return ss;  
            5. }  

            然后問題解決。
            posted @ 2017-08-03 14:50 冬瓜 閱讀(2075) | 評論 (0)編輯 收藏

                 摘要: C++17標準在2017上半年已經討論確定,正在形成ISO標準文檔,今年晚些時候會正式發布。本文將介紹最新標準中值得開發者關注的新特新和基本用法。

            總的來說C++17相比C++11的新特性來說新特性不算多,做了一些小幅改進。C++17增加了數十項新特性,值得關注的特性大概有下面這些:  閱讀全文
            posted @ 2017-07-28 13:25 冬瓜 閱讀(1889) | 評論 (1)編輯 收藏

            從上次六一安裝試用RAD,這就樣過了快兩個月了,就想用一下看看,結果報MSBUildToolsPath is not specified for the ToolsVersion "14.0",google了一下,找到原因了,因為我有裝過vs2015,但是真心不好用,就卸載了,裝了vs2013,于是就報這樣的錯了。卸載是是比較干凈的,但是還是有一個地方注冊表有漏了,就是32位注冊表(沒想64位windows會有64和32兩份注冊表),
            運行:c:\windows\SysWOW64\regedt32.exe
            找到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\14.0

             HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersion\14.0
            然后刪除,就可以了。

            再去行RAD,就不報這個錯了。
            然后就可以開開心心寫了一個android例子,順利跑了起來。

            posted @ 2017-07-21 10:07 冬瓜 閱讀(1173) | 評論 (0)編輯 收藏

                 摘要: JetBrains 在 2016 年底至 2017 年初期間,對 5000 多名開發人員進行了調查,以研究最新的開發生態。

            最近,調查結果已公布:Java 被評為最流行的語言,JavaScript 是最常用的語言,而 Go 被認為是最有前途的語言。  閱讀全文
            posted @ 2017-07-19 15:34 冬瓜 閱讀(1002) | 評論 (0)編輯 收藏

            一、說明

            在es6中增加了一個class,簡單明了,比ES5下面強多了 
            每個類都有會有一個構造函數constructor。如果沒有申明,則會默認分配一個空的。 
            如果需要調父類的構造函數,需要在constructor第一行調用super,至于為什么,已經有N多文檔說明了。 
            例如:

            class a {
            constructor(m) {
            this.m_m = m;
            }
            };
            class b extends a {
            constructor(m, m1) {
            super(m);
            this.m_m1 = m1;
            }
            };
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11

            二、屬性方法

            在es6中,使用get和set來標明屬的讀寫函數

            class a {
            constructor(m) {
            this.m_m = m;
            }
            get m() { return this.m_m; }
            set m(v) { this.m_m = v; }
            };
            let testa = new a(1999);
            console.log(testa.m);
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9

            在這里就會 打印出1999

            三、非靜態成員函數

            class a {
            constructor(m) {
            this.m_m = m;
            }
            get m() { return this.m_m; }
            set m(v) { this.m_m = v; }
            mult(k) {
            return this.m_m * k;
            }
            add(k) {
            return this.m_m + k;
            }
            sub(k) {
            return this.m_m / k;
            }
            };
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 13
            • 14
            • 15
            • 16
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 13
            • 14
            • 15
            • 16

            在這里可以看到,不需要用function了,又是做了大大的簡化。

            四、靜態成員函數

            只需要在類的成員方法前,加一個static關鍵字就可以了,如果同一個類的靜態函數,可以用this來調用。如下面的astatcfun1調用astatcfun,也可以用類名.的方問,如astatcfun2調用astatcfun,建議還是用this,在使用的時候,靜態方法,不需new出對象來,直接用對象.的方式,如下面的testcall調用a的靜態方法。也可以派生給子類。

            class a {
            constructor(m) {
            this.m_m = m;
            }
            static astaticfun() {
            return 100;
            }
            static astatcfun1() {
            return this.astaticfun() + 200;
            }
            static astatcfun2() {
            return a.astaticfun() + 200;
            }
            get m() { return this.m_m; }
            set m(v) { this.m_m = v; }
            mult(k) {
            return this.m_m * k;
            }
            add(k) {
            return this.m_m + k;
            }
            sub(k) {
            return this.m_m / k;
            }
            }; //
            function testcall(){
            console.log(a.astaticfun());
            console.log(a.astatcfun1());
            console.log(a.astatcfun2());
            }
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 13
            • 14
            • 15
            • 16
            • 17
            • 18
            • 19
            • 20
            • 21
            • 22
            • 23
            • 24
            • 25
            • 26
            • 27
            • 28
            • 29
            • 30
            • 31
            • 32
            • 33
            • 34
            • 35
            • 36
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 13
            • 14
            • 15
            • 16
            • 17
            • 18
            • 19
            • 20
            • 21
            • 22
            • 23
            • 24
            • 25
            • 26
            • 27
            • 28
            • 29
            • 30
            • 31
            • 32
            • 33
            • 34
            • 35
            • 36

            靜態成員函數的調用

            class a {
            static aaa() {
            return "aaa";
            }
            static bbb() {
            return this.aaa() + "bbb"; //同一個類的靜態函數調用函數,只需要用this.就可以
            }
            kkk() { return "kkk"; }
            ccc() {
            return a.aaa() + "ccc" + this.kkk(); //同一個類的非靜態函數調用靜態函數,則需要類名.的方式
            }
            };
            let c = new a();
            console.log(a.bbb());
            console.log(c.ccc());
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 13
            • 14
            • 15
            • 16
            • 17
            • 18
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 13
            • 14
            • 15
            • 16
            • 17
            • 18

            五、派生

            在ES6的派生通過extends這個關鍵字就可以,如

            class b extends a() { };
            posted @ 2017-07-17 11:47 冬瓜 閱讀(636) | 評論 (0)編輯 收藏

                 摘要: 本文不是為了讓讀者去評判這些程序媛的顏值,而是為了讓大眾知道,在代碼背后,也存在這樣一群女性,她們利用自己的技術戰勝了世人的偏見,用自己的實力贏得了如今的地位。在這個男性統治的數字世界,她們的成就尤為不易。未來,應該有更多的程序媛,而不是程序員鼓勵師。  閱讀全文
            posted @ 2017-07-06 11:03 冬瓜 閱讀(853) | 評論 (0)編輯 收藏

            C++語言做為一個計算機語言,無可厚非的可稱為最牛的語言之一。每種語言都有其應用場景。對于反射,運行時類型,其實也只是C#和java這種語言需要的多,而這種語言應用場景和C++是不重疊的。如果強用C++寫這些場景的應用,我只能說,哭吧,不是罪。
            現在大量的應用,都開始使用更輕量的級的語言了,如javascript,go,swift,lua等。這些語言,也同樣沒有反射,只提供了少量的運行時信息,但用他們開發起來,比C#和java要輕很多。現在很多手機端app,你則可以很輕松實現,而用java或Objective C,則是各種苦惱!
            所以,當 華夏之火吐糟C++的時候,你知道有多少人在吐糟java和C#嗎?如果說起php是最好的語言,你服嗎?

            C++的String和STL相比C#和java確實要差一些,早期版本的STL庫還非常難讀,還很多個版本實現。但是java和C#這些庫比起javascript,lua等語言重很多了。

            所以具體的開發,還是選擇合適的語言,這樣開發,才能呵呵。在各自的應用場景,其實是不能相互替代的。
            posted @ 2017-07-05 16:16 冬瓜 閱讀(680) | 評論 (0)編輯 收藏

            僅列出標題
            共17頁: 1 2 3 4 5 6 7 8 9 Last 
            亚洲精品WWW久久久久久| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 丁香狠狠色婷婷久久综合| 久久亚洲私人国产精品| 欧美亚洲另类久久综合| 久久久久综合中文字幕| 久久综合给合久久狠狠狠97色| 久久青草国产手机看片福利盒子| 久久精品99无色码中文字幕| 亚洲AV无码久久精品蜜桃| 91精品日韩人妻无码久久不卡| 中文字幕久久波多野结衣av| 亚洲午夜久久久精品影院| 无码超乳爆乳中文字幕久久| 欧美午夜精品久久久久久浪潮| 久久国产高潮流白浆免费观看| 午夜视频久久久久一区 | 久久久久99精品成人片试看 | 精品久久久久久无码专区| 久久久久黑人强伦姧人妻| 人妻无码久久一区二区三区免费| 久久无码人妻精品一区二区三区| 久久91精品国产91久久小草| 影音先锋女人AV鲁色资源网久久| 亚洲&#228;v永久无码精品天堂久久 | 久久久久AV综合网成人| 中文字幕无码久久久| 久久无码精品一区二区三区| 久久国产精品波多野结衣AV| 久久美女网站免费| 久久国产色AV免费看| 久久天天躁狠狠躁夜夜网站| 人妻无码中文久久久久专区| 久久精品国产亚洲AV忘忧草18| 思思久久好好热精品国产| 亚洲国产婷婷香蕉久久久久久| 欧美国产成人久久精品| 天堂无码久久综合东京热| 久久午夜福利无码1000合集| 伊人久久大香线蕉AV色婷婷色| 亚洲国产精品无码成人片久久|