不能停止的腳步
#
因為工作需要分析protobuf的數據,google了一下,我個人沒有找到合適的,就參考google protobuf文檔,寫了一個分析工具。這個項目用的是C++Builder XE10.2, win64實現。 因為是臨時定的代碼,就寫的很隨意了,很少注釋。
C++ Builder XE 10.2
https://code.csdn.net/zdhsoft/protobuf_tools/tree/master
在開發過程中,如果代碼很整齊的話,那么這個代碼就會看起來比較舒服。就像看到一個整潔的屋子一樣。 其中,=,:等對齊,則是一個重要的整潔處理。
這個就是vscode的對齊插件,啟動vscode,進入插件管理,沒有安裝的話,搜索一下,很快就有了。然后安裝即可。vscode的插件管理真是做的很不錯,易用。
安裝完成后,就可以使用了 將光標移到要對齊的代碼塊,然后安一下ctrl+shift+p,然后輸入命令,就立馬對齊了。 如下圖演示 Comma-first sytle Trailing comment Align within selection
如果老是輸入命令,確實很麻煩,可以配置快捷鍵 我這里配置的是ctrl+alt+= 如下圖:文件->首選項->鍵盤快捷方式,如下圖 進入之后:在鍵盤快捷方式編輯中,點擊keybindings.json, 進入json設置后 然后我輸入ctrl+alt+= 然后輸入操作內容
{ "key": "ctrl+alt+oem_plus", "command": "wwm.aligncode", "when": "editorTextFocus && !editorReadonly" }
這樣,就可以使用快捷鍵操作了
原文地址: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
之前,都是在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取到。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersion\14.0然后刪除,就可以了。再去行RAD,就不報這個錯了。然后就可以開開心心寫了一個android例子,順利跑了起來。
在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; } };
在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);
在這里就會 打印出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; }};
在這里可以看到,不需要用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()); }
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());
在ES6的派生通過extends這個關鍵字就可以,如
class b extends a() { };
Copyright @ 冬瓜 Powered by: .Text and ASP.NET Theme by: .NET Monster