Time of Update: 2018-12-07
boost::scoped_ptr和std::auto_ptr非常類似,是一個簡單的智能指標,它能夠保證在離開範圍後對象被自動釋放。下列代碼示範了該指標的基本應用:#include<string>#include<iostream>#include<boost/scoped_ptr.hpp>class implementation{public: ~implementation() { std::cout <<"destroying
Time of Update: 2018-12-07
傳說在很久很久以前,軟體界出過一位大師。他能直接用二進位編寫複雜高效且無錯的程式;他寫過的機器碼比我們吃過的米還要多;他用眼睛看看閃爍的硬碟燈就知道程式當前的運行狀態;他用耳朵聽聽機器的噪音就可以準確地判斷出錯誤在哪個模組的哪一行代碼上。他寫的程式極為精簡,10行代碼就可以頂別人寫的100行代碼,且效率更高。他不輕易給人寫程式,即使千金也難換來他的一行代碼。但他一旦開始寫編碼,那可是瀟瀟洒灑一揮而就,代碼都是一行千金。他從不困惑於軟體的宏觀體系和微觀結構之中,因為他通曉軟體的本原,預知軟體的未來
Time of Update: 2018-12-07
最近做做項目的時候,發現一個如標題所寫的問題,與大家分享一下。具體問題是這樣的,當同一台電腦,同一個使用者登陸系統,再同時點擊用window.open()方法開啟的彈出頁面的時候,就會出現Session丟失的問題。具體的原因還沒有找到,我現在的解決辦法是window.open(URL,windowName,featrue),將open方法中的第二個參數彈出表單的名稱讓其隨機產生。JavaScript詳細代碼如下:function WinOpen(url){ var
Time of Update: 2018-12-07
一 買個鬧鐘,以便按時叫醒你。貪睡和不守時,都將成為你工作和事業上的絆腳石,任何時候都一樣。不僅要學會準時,更要學會提前。就如你坐車去某地,沿途的風景很美,你忍不住下車看一看,後來雖然你還是趕到了某地,卻不是準時到達。“鬧鐘”只是一種簡單的標誌和提示,真正靈活、實用的時間,掌握在每個人的心中。
Time of Update: 2018-12-07
真正精通一門語言,特別是c++這樣的複雜語言,不簡單。況且可能需要熟悉3,4種語言,而且要防止慣性的幹擾,不簡單。精通資料結構和演算法以及最佳化,正確分析選擇問題所需要的資料結構和演算法,不簡單。熟悉自己工作的平台的方方面面,從硬體到作業系統到編譯器到各種開發庫,不簡單。能實用的運用設計模式去設計軟體,系統結構清晰合理,開發高效,易維護,不簡單。編寫的代碼就像藝術品,增一行則多,減一行則少,不簡單。懂得重構,善用重構,追求完美但不超預算,不簡單。和夥伴合作流暢,工作開心少加班,不簡單。擁有快速學
Time of Update: 2018-12-07
學習設計模式之前,我們應該總體瞭解一下各個設計模式的特性和使用環境,畢竟設計模式是一些固定問題得解決方案;瞭解設計模式可以從各個設計模式屬於那個種類入手,知道了設計模式屬於哪個類別才能應用到的具體實現中。瞭解了設計模式是遠遠不夠的,還要求我們很清楚的知道物件導向設計的基本設計原則,在學習設計模式中慢慢體會基本原則,才能體會到物件導向設計的精華所在。下面對設計模式和設計原則進行總結一、設計模式大體分為三個種類:1.Creational
Time of Update: 2018-12-07
前言 間一直致力於Silverlight技術的學習和研究,經過了這段時間的學習也有許多心得,在此記錄下來同時和大家分享一下。本章主要是側重於Silverlight系統架構設計方面;其核心問題就是Silverlight用戶端怎麼與服務起互動;基於MSSQL可以通過RIA Serivces來實現,相對來說比較方便,由於我對RIA
Time of Update: 2018-12-07
Thunk 技術的一個改進作者:南風下載原始碼摘要:介紹了 thunk 技術中如何避免直接寫機器碼。關鍵字:Thunk 機器碼 this指標 Thunk技術,一般認為是在程式中直接構造出可執行代碼的技術(在正常情況下,這是編譯器的任務)。《深度探索C++物件模型》中對這個詞的來源有過考證(在中文版的162頁),說thunk是knuth的倒拼字。knuth就是大名鼎鼎的電腦經典名著《The Art of Computer
Time of Update: 2018-12-07
眾所周知,程式為了提高訪問效率,編譯器在編譯的時候,進行位元組對齊。程式員也可以位元組指定對齊。Win32下的為progma指令,具體來說#pragma pack(push) //儲存原對齊狀態#pragma pack(4)//設定為4位元組對齊struct test{ int a;};#pragma pack(pop)//恢複對齊狀態在linux下,gcc是預設的編譯器。g++
Time of Update: 2018-12-07
轉自http://blog.sina.com.cn/s/blog_48554c770100q38a.htmlVC6.0中實現檔案拖拽-
Time of Update: 2018-12-07
__declspec(novtable) 在C++中介面中廣泛應用. 不容易看到它是因為在很多地方它都被定義成為了宏. 比如說ATLActive Template Library中的ATL_NO_VTABLE, 其實就是__declspec(novtable). __declspec(novtable) 就是讓類不要有虛函數表以及對虛函數表的初始化代碼, 這樣可以節省已耗用時間和空間. 但是這個類一定不允許產生執行個體, 因為沒有虛函數表, 就無法對虛函數進行調用. 因此,
Time of Update: 2018-12-07
我為了移動一個無標題列的表單,使用了WM_NCHITTEST訊息,這個訊息大概如下:通常,我們拖動對話方塊視窗的標題列來移動視窗,但有時候,我們想通過滑鼠在客戶區上拖動來移動視窗。一個容易想到的方案是,處理滑鼠訊息WM_LBUTTONDOWN和WM_LBUTTONUP。在OnLButtonUp函數中計算滑鼠位置的變化,調用MoveWindow實現視窗的移動。注意,拖動標題列移動視窗的時候,會出現一個矩形框,它提示了視窗移動的當前位置。當滑鼠左鍵放開的時候,視窗就移動到矩形框所在位置。而我們的實現
Time of Update: 2018-12-07
WinHTTP的全稱是Microsoft Windows HTTP Services, 它提供給開發人員一個HTTP用戶端應用程式介面(API), 通過這種API藉助HTTP協議給其他的HTTP伺服器發送請求. WinHTTP支援傳統型應用程式, Windows系統服務, 和Windows伺服器端應用程式.對於基於Microsoft .NET Framework的應用程式, 不推薦使用WinHTTP服務, 因為.NET
Time of Update: 2018-12-07
在openSUSE11.1中安裝vmware-tools後,發現在/mnt下沒有hgfs,無法查看與windows共用的檔案。解決的方法是需要手動載入hgfs,方法如下。1. SuSE:~ # vmware-hgfsclient 命令查看當前有哪些共用的目錄2. 看到了自己要共用的目錄之後,就可以使用 SuSE:~ # mount -t vmhgfs .host:/Documents /mnt/hgfs #使用mount方式掛載,其中.host:/Documents是共用名稱,/mnt/
Time of Update: 2018-12-07
今天,在實現串聯功能表的時候,突然出現一下錯誤:回傳或回調參數無效。在配置中使用 <pages enableEventValidation="true"/> 或在頁面中使用 <%@ Page EnableEventValidation="true" %> 啟用了事件驗證。出於安全目的,此功能驗證回傳或回調事件的參數是否來源於最初呈現這些事件的伺服器控制項。如果資料有效並且是預期的,則使用
Time of Update: 2018-12-07
前言 剛參加工作,前輩們就經常教導我,一定要給自己找到個人生目標,並堅持不懈的努力去實現你的目標。不管是資料庫和軟體設計等方面(本人是搞軟體開發),堅持努力下去,最終都會有個好的結果。剛開始不是很理解為什麼他們這樣說,通過在各方面查閱人生目標相關的資料和名人傳記,發現人生目標是多麼重要。 確定目標
Time of Update: 2018-12-07
Today I received a log of an error in a windows service that runs some scheduled actions, the error was TooManyRowsAffectedException and it is thrown by nhibernate when a session is flushed. The exact message said Unexpected row count: 2; expected: 1
Time of Update: 2018-12-07
1.Visual studio .Net
Time of Update: 2018-12-07
Time of Update: 2018-12-07
inline int static_test(){ static int i =0; ...}inline