Time of Update: 2018-07-26
感覺Reflector比ILSpy好用,但是Reflector收費。ILSpy經常反編譯出一些亂七八糟的東西。但是在使用中,最好還是兩個一起用,因為經常反編譯後的代碼出錯,但是不知道為什麼,兩個對比一下就知道了,像下面這張圖: 左邊是ILSpy,右邊是Reflector,兩個反編譯的結果還不一樣,錯誤也不一樣。 1. error CS0579 error CS0579: Duplicate
Time of Update: 2018-07-26
最近同時用了thrift和protobuf,進行通訊傳輸。之前已寫過關於protobuf的一篇博文,具體請點擊:http://blog.csdn.net/zsk4232000/article/details/50300201 ,現在就總結一下thrift的編寫,並與protobuf進行一些比較。沒有進行深入的研究,只描述一下我用thrift的流程與方法。 thrift本身封裝了一些通訊的庫,支援完整的client/server
Time of Update: 2018-07-26
1.編譯。對c++而言,通常是檔案獨立編譯--產生獨立的中間目標檔案。這時主要是語義語法檢查,函數與變數的申明的正確性。這需要引入合適的標頭檔,要讓編譯器看到定義。編譯產生的檔案在windows下是.obj檔案,在unix下是.o檔案。 2.串連。串連時,主要是串連函數和全域變數,地址替換和重定位。串連時只關注目標檔案,忽略了源檔案。如果函數未被聲明,通常只是警告一下,可以產生目標檔案。但是如果類型未定義(編譯器無法確定類型大小時),則出錯。
Time of Update: 2018-07-26
1.前言 namespace中文意思是命名空間或者叫名字空間,傳統的C++只有一個全域的namespace,但是由於現在的程式的規模越來越大,程式的分工越來越細,全域範圍變得越來越擁擠,每個人都可能使用相同的名字來實現不同的庫,於是程式員在合并程式的時候就會可能出現名字的衝突。namespace引入了複雜性,解決了這個問題。namespace允許像類,對象,函數聚集在一個名字下。本質上講namespace是對全域範圍的細分。
Time of Update: 2018-07-26
【C++】用棧實現倒序輸出一個字串(可以帶空格) 思路: 1.用string和getline擷取一行可以帶空格的文本 2.將string轉換為 char* 3.將char*入棧 4.將棧內元素出棧即可實現倒敘輸出 /*獲得一行文本,用棧倒序輸出這行文本*/#include <iostream>#include <stack>//使用標準庫裡面的棧#include <cstring>#include
Time of Update: 2018-07-26
計算程式執行耗費的時間 代碼: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics;namespace watch{ class Program { static void Main(string[] args) { Stopwatch sw = new
Time of Update: 2018-07-26
學習靜態類和靜態函數。 這篇部落格的內容來自MSDN,當然內容是我自己看MSDN翻譯出來的。 本文 靜態類和非靜態類其實基本相同。兩者有一處不同:靜態類不能被執行個體化。換句話來說,你不能夠用new去為一個靜態類執行個體出一個對象來。因為靜態類中根本沒有執行個體成員。你只能通過使用類名來訪問靜態類變數。舉一個例子:如果你的靜態類名叫UtilityClass,而這個類中有個方法叫做MethodA,你只能像下面這樣去調用。 UtilityClass.MethodA();
Time of Update: 2018-07-26
目前為止,我們一直使用傳統的類型轉換符來進行簡單對象的類型轉換。例如,要把一個double類型的浮點型數字轉換為int 的整型數字,我們是這樣做的: int i; double d; i = (int) d; 或者 i = int (d); 這樣做對基礎資料型別 (Elementary Data Type)時沒問題的,因為基礎資料型別 (Elementary Data Type)的轉換已經有標準的定義。同樣的操作也可以被在類或類的指標上,因此以下例子中的寫法也是沒有問題的:
Time of Update: 2018-07-26
Load:在第一次顯示表單前發生。 <pre name="code" class="csharp"> private void Form1_Load(object sender, EventArgs e) { } Shown:只有在首次顯示表單時才會引發 Shown 事件;隨後執行的最小化、最大化、還原、隱藏、顯示或無效化和重新繪製操作都不會引發該事件。 private void
Time of Update: 2018-07-26
寫的不一定對。錯了求指正。 前言 這篇是用C++11 的 thread 做的。 編譯大概是 g++ sort.cpp -O3 -pthread -std=c++14 -o sort 其實還沒學c++14 最近開始學CUDA,感覺線程具體怎麼用和硬體是直接相關的, 不同架構啊不同精度啊使用線程的方式都應該不同。這篇部落格就是個實驗,用CPU實現一下奇偶排序為日後與CUDA做比較
Time of Update: 2018-07-26
C語言的void和void *: void的字面意思是“無類型”,void *則為“無類型指標”,void *可以指向任何類型的資料。 void * memset ( void * buffer, int c, size_t num ); 這樣,任何類型的指標都可以傳入memcpy和memset中,這也真實地體現了記憶體操作函數的意義,因為它操作的對象僅僅是一片記憶體,而不論這片記憶體是什麼類型。如果memcpy和memset的參數類型不是void *,而是char *,
Time of Update: 2018-07-26
首先從原理上解釋一下採用Socket介面的網路通訊,這裡以最常用的C/S模式作為範例,首先,服務端有一個進程(或多個進程)在指定的連接埠等待客戶來 串連,服務程式等待客戶的串連資訊,一旦串連上之後,就可以按設計的資料交換方法和格式進行資料轉送。用戶端在需要的時刻發出向服務端的串連請求。這裡為 了便於理解,提到了一些調用及其大致的功能。使用socket調用後,僅產生了一個可以使用的socket描述符,這時還不能進行通訊,還要使用其他的調 用,以使得socket所指的結構中使用的資訊被填寫完。
Time of Update: 2018-07-26
(1)簡介: 內部類其實就是一種在類聲明裡面定義的一種局部資料類型。(非常類似於struct Node聲明的),這和java的還有存在區別的。 ---- 內部類的聲明有public和private之分 如果聲明為public,那麼外面也可以用它來定義變數,比如Outer::Inner var 如果聲明為private,那麼外面不能用來定義變數,那麼Outer::Inner var將會導致編譯錯誤。 (2)---- 內部類聲明完之後就可以用來定義變數
Time of Update: 2018-07-26
最近一段時間在研究 Pro*C 遇到了很多初級問題。在 Pro*C 中串連資料庫時,我們一般是使用在“tnsnames.ora”中配置好串連,寫起來很簡單,文法如下: EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbname; /* 這裡的 dbname 就是在“tnsnames.ora”
Time of Update: 2018-07-26
雖然很難找到一本不討論多態性的C++書籍或雜誌,但是,大多數這類討論使多態性和C++虛函數的使用看起來很難。我打算在這篇文章中通過從幾個方面和結合一些例子使讀者理解在C++中的虛函數實現技術。說明一點,寫這篇文章只是想和大家交流學習經驗因為本人學識淺薄,難免有一些錯誤和不足,希望大家批評和指正,在此深表感謝。 在類中,如果什麼都沒有,則類佔用1個位元組,一旦類中有其他的佔用空間成員,則這1個位元組就不在計算之內,如一個類只有一個int則佔用4位元組而不是5位元組。
Time of Update: 2018-07-26
C++中的虛函數(一)作者:aber 雖然很難找到一本不討論多態性的C++書籍或雜誌,但是,大多數這類討論使多態性和C++虛函數的使用看起來很難。我打算在這篇文章中通過從幾個方面和結合一些例子使讀者理解在C++中的虛函數實現技術。說明一點,寫這篇文章只是想和大家交流學習經驗因為本人學識淺薄,難免有一些錯誤和不足,希望大家批評和指正,在此深表感謝。 一、 基本概念
Time of Update: 2018-07-26
馬上要找工作了,發現自己很多看過的書都忘記了,於是開始寫部落格記錄一下,也想以後自己能回憶回憶這段經曆吧。後台開發這本書比較適合找C++後台開發的人讀,裡面的知識點比較關鍵,面試基本都會用到。 第一章 C++常用編程技術 1 strlen()與sizeof()的區別: strlen()計算字串的長度,遇到字串末尾的’\0’結束。 sizeof()為宏定義的運算子,在編譯之前就已經算好。 2 字串、字串指標以及字元數組的區別 string str1 =
Time of Update: 2018-07-26
一、說明 ListBox自身的OnDrawItem函數是專門繪製item樣式的,只需要重載即可 protected override void OnDrawItem(DrawItemEventArgs e) { e.DrawBackground(); e.DrawFocusRectangle(); // 確保listbox中有日誌且該日誌被記錄在字典中 if
Time of Update: 2018-07-26
http://blog.sina.com.cn/s/blog_6a5b2e450100kpav.html /擷取"程式安裝路徑或程式運行當前路徑" TheInstallPath = Application.StartupPath;
Time of Update: 2018-07-26
前兩篇介紹了伺服器控制項的基本顯示,屬性的設定,繼承Webcontrol開發控制項等內容,這篇介紹下定製伺服器控制項的事件的處理和回傳資料的處理。 當ASP.NET頁面處理回傳到伺服器端的表單時,兩種資訊會傳遞給頁面中的控制項: 回傳事件,如Button一類控制項觸發的回傳,會引發伺服器端事件; 回傳資料:是Web表單中包含的資料,該資料是在Web表單提交到伺服器端時傳遞給如TextBox一類的控制項。 處理回傳資料