Time of Update: 2018-12-03
STL:標準C++庫(1)字串類std::string的用法包含標頭檔:#include <string>using namespace std;使用方法:std::string s1;std::string s3(s2);std::string s2("this is a string");begin 得到指向字串開頭的Iteratorend 得到指向字串結尾的Iteratorrbegin 得到指向反向字串開頭的Iteratorrend
Time of Update: 2018-12-03
建立了一個結構體,其中有一個欄位是線程控制代碼HANDLE當新建立的線程執行時,需要去擷取結構體中關於該控制代碼的其他內容;因此,以HANDLE作為尋找條件進行擷取於是想起GetCurrentThread()方法來擷取當前線程的控制代碼函數原型:HANDLE GetCurrentThread(void);傳回值:A pseudohandle for the current thread indicates
Time of Update: 2018-12-03
使用環境:ubuntu 11.10 C++自己建立了一個通訊端的類MySock當調用Accept()方法時,返回一個MySock &類型的值;MySock & Accept();出現錯誤:MySock connSock=lstnSock.Accept();當調用connSock.Recv();方法進行接收時,接收到的位元組數為-1(即接收錯誤);提示錯誤為:EBADF: The argument sockfd is an invalid
Time of Update: 2018-12-03
參考:1. http://www.cnblogs.com/Kernone/archive/2009/08/18/1549286.html2. http://blog.sina.com.cn/s/blog_4b226b9201011bu6.html在使用很多函數的時候,我們都需要獲得一個對象的控制代碼,而某些函數,如GetCurrentProcess() / GetCurrentThread() 返回的是偽控制代碼
Time of Update: 2018-12-03
通訊端接收函數如下:recv(int fdsock, void * buf, size_t bufsize, int flags);該函數應該是對方發送一條,接收方接收一條;而且接收方不一定要接收bufsize個位元組後才返回;但是在特殊情況下,對方連續發送資訊時(用for()迴圈發送N條資訊)時,發現一個狀況:第1條訊息接收正確,而之後的訊息作為一次接收處理了...很是奇怪
Time of Update: 2018-12-03
轉自:http://kuaixingdong.blog.hexun.com/29627840_d.html我們先看看COM所支援的一些類型的基本類:(微軟提供,在comdef.h中定義)在COM中使用的標準類Class如下所示:_bstr_t:對BSTR類型進行打包,並提供有用的操作和方法;_com_error:定義拋出的error對象;_com_ptr_t:封裝COM介面指標_variant_t:對VARIANT類型進行打包,並提供有用的操作和方法;一、_variant_t類的簡單介紹:_va
Time of Update: 2018-12-03
以前以為定義一個數組的話,系統會自動為其在heap上分配一塊兒新的記憶體空間。但是在做實驗的時候發現原先的理解有誤代碼如下:for(int nIter=0; nIter<3; nIter++){char name[16]={0};printf("a new name point to
Time of Update: 2018-12-03
參考:http://groups.google.com/group/pongba/browse_thread/thread/580de28290644b79在網上找到資料說,fstream的效能比CFile低很多fstream類的成員函數傳回值幾乎都為void,即不傳回值。因為fstream類是型別安全的,它在內部會處理掉可能出現的錯誤,甚至對每一位元組都會有檢查,所以效率很低感覺挺有道理新手階段用fstream,之後可以用CFile,以提高效率
Time of Update: 2018-12-03
環境:Linux,C++問題:在發送訊息時,需要將utf-8編碼轉換為utf-16編碼,因此需要用到iconv()函數族在用iconv()函數進行轉換時,出現了錯誤,提取errno得到EILSEQ錯誤,即待轉換的char*所指向的內容多位元組序無效(個人理解為有亂碼)探查原因:偵錯工具,發現原來是自己結構體沒有填充完善造成的。(粗心害死人)原因:在轉換前,記憶體空間是進行了初始化的;如果結構體資訊添加不完全的話,應該是記憶體中有一串0。可能是這個原因導致的,但不太確定解決辦法:檢查待轉換的字元指
Time of Update: 2018-12-03
轉自:http://apps.hi.baidu.com/share/detail/34671110STL中的list就是一雙向鏈表,可高效地進行插入刪除元素。現總結一下它的操作。文中所用到兩個list對象c1,c2分別有元素c1(10,20,30) c2(40,50,60)。還有一個list<int>::iterator citer用來指向c1或c2元素。list對象的聲明構造():A. list<int>c0; //空鏈表B. list&
Time of Update: 2018-12-03
轉自:http://hi.baidu.com/zhujianzhai/blog/item/40a92e94a0c822007af48008.html有如下兩種方法:方法一:在工具列上添加註釋按鈕:工具列上右鍵 -->自訂 -->附加項和宏檔案tab頁-->在SAMPLE前面打上鉤 -->回到" 命令 "tab頁 -->類型選擇Macros
Time of Update: 2018-12-03
使用環境:在網路通訊中,使用結構體進行通訊結構體定義如下:用戶端(採用utf-16編碼): [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] struct MsgHead { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] public char[] cSenderName; [MarshalAs(
Time of Update: 2018-12-03
我是struts初學者,在Struts in Action 這本書上看到了LazyDynaBean這段例子,想把它用在我的開發上,卻發現在Action的execute()函數中,我想把使用者輸入的表單參數提取出來時,ActionForm不能轉LazyDynaBean.上網找了好久,中文資料基本沒有提到,後來找到一段英文資料: LazyDynaBean GotchasThe above solution using LazyDynaBean looks like a simple drop
Time of Update: 2018-12-03
轉自:http://apps.hi.baidu.com/share/detail/31497239所謂的斷點續傳就是指:檔案在傳輸過程式中被中斷後,在重新傳輸時,可以從上次的斷點處開始傳輸,這樣就可節省時間,和其它資源。實現關鍵在這裡有兩個關鍵點:其一是檢測本地已經下載的檔案長度和斷點值;其二是在服務端調整檔案指標到斷點處實現方法:我們用一個簡單的方法來實現斷點續傳的功能:在傳輸檔案的時候建立一個臨時檔案用來存放檔案的斷點位置在每次傳送檔案時,先檢查有沒有臨時檔案;如果有的話,就從臨時檔案中讀取
Time of Update: 2018-12-03
現在有一個class Matrix , 它的職責是一個表示一個矩陣的資料結構。 而 我現在 要將這個矩陣用在特列的地方,因此要加一些方法,例如 列印 void print(); 再例如 把這個矩陣分成四個小矩陣, split()等功能,我一直以來的做法(稱為A做法) 是,把這個矩陣拷過來,然後改個名字,例如 Special_Matrix , 然後再在裡面寫新的方法 後來想到了 用繼承的方法,直寫一個新類Special_Matrix ,繼承原來的 Matrix
Time of Update: 2018-12-03
出錯環境:在xml文檔中寫入一些內容。整個流程是:首先檢查xml檔案是否在當前路徑下,如果存在,則用xmlDocument.Load()進行載入;如果不存在則建立xml檔案,並用xmlDocument.Save(string)進行儲存出錯代碼如下: //xml檔案名稱 m_xmlFileName = "fileRecvRecord.xml"; //擷取檔案名稱(包含全路徑名) string
Time of Update: 2018-12-03
C++與C開發windows應用程式的區別C語言:使用一個視窗控制代碼HWND完成視窗的各種操作(WND是windows的內部私人結構)C++:使用CWndWindows視窗和CWnd的區別CWnd由建構函式建立;Windows視窗由CWnd的Create函數建立 CWnd類操作一個HWND類型的資料成員:m_hWnd.◆控制代碼和指標的區別指標對應一個資料在記憶體中的地址,指標可以自由修改資料控制代碼並不能直接操作它,而是通過調用相應的API函數來操作。 控制代碼映射機制(內部實現機制)MFC
Time of Update: 2018-12-03
例如以下語句: float floatVal = 3.15884534; 這個 3.15884534 會變成 3.15885 儲存在 floatVal 中。即float 約 精確到 小數點後第四位 從檔案讀取時,還是先按double讀入 例如 現在我的 的tmp.txt 存有 一個 2.446789 數(注意,這個數小點數後有六位元) 運行以下代碼: const char* TEST_FILE_NAME = "c://tmp.txt";void
Time of Update: 2018-12-03
為什麼在沒有Validator之前,用Actionform的validate()方法去驗證使用者輸入的資料的方式不好?1. The Validator framework comesprepackaged with several validation routines, making the transition fromhard-coded validation logic painless. (What ishard-coded validation logic? Is it that
Time of Update: 2018-12-03
一個Action子類 TestAction, test.jsp提交表單後, 交到TestAction,再由TestAction跳轉到 fail.jsp public class TestAction extends Action {public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {//