原创 一種無鎖CycleBuffer

利用我的前一篇文章介紹的多線程無鎖解決方案,很容易實現一個支持一個線程讀,一個線程寫的CycleBuffer。需要特別注意的是該CycleBuffer要求緩衝區長度爲2的n次方。下面貼出代碼: class ZwAsynCount { pu

原创 一個函數實現網絡故障診斷

該代碼由網上的文章“微軟ping程序源代碼完整版”修改而來。該文實現一個完整的ping命令,爲方便在其他程序中調用,在此將其封裝成一個獨立的函數。 BOOL Ping(char *strIP,int nTimeout,DWORD *dw

原创 視頻監控客戶端開發(IP Camera)總結

做了將近三年時間的視頻監控客戶端開發,當然期間也做個一些其他開發。在開發期間,經對系統不斷進行重構優化積累了一些經驗,現向大家分享一下。希望以此拋磚

原创 一種多線程基於計數無鎖實現

      本文介紹一種不加鎖,不使用原子操作的多線程同步機制。先申明下,該方案爲我在實際編程中創造出來的,事先我沒有在其中地方看到關於該方案的介紹。      在多線程編程中,我們經常會遇到線程同步問題,這時候加鎖就變得必不可少。但是鎖

原创 程序員如何保持優秀

小範圍的選擇一些有用技術,透徹的學習它們,擁抱它們。然後不斷的擴展這個範圍。 理解各種數據結構的優點和缺點,包括它們在內存中和在硬盤上的各自表現。 理解各種算法的優點和缺點。 瞭解你的工作領域。關上電腦,去做你的用戶們在做

原创 MFC非模態對話框的銷燬

S的指示:非模態對話框需要重載函數OnCanel,並且在這個函數中調用DestroyWindow。並且不能調用基類的OnCancel,因爲基類的OnCancel調用了EndDialog這個函數,這個函數是針對模態對話框的。 還有一個必須

原创 socks代理服務器協議的說明

socks代理裏面,有socks4 socks4a socks5,也有叫sock4 sock4a sock5的,都是一回事。 socks4 socks4a和socks5的tcp部分極其簡單。 這又出現一個怪現象了,網文中除了一個人說道

原创 TCP之深入淺出send和recv

文章來源:http://blog.chinaunix.net/uid-29075379-id-3895700.html 在這篇文章中,我用深入淺出socket選項行爲中的4個選項來介紹send和recv的行爲 SO_RCVBUF SO_

原创 編程實現後臺打印

後臺打印即打印時不彈出打印對話框,在某些不需要用戶干預的時候非常有用。利用以下API可以很容易實現後臺打印: 1.創建打印機DC CreateDC(  LPCWSTR pwszDriver, LPCWSTR pwszDevice, LPC

原创 Win32編程點滴3 - 簡單ActiveX控件的使用

文字來源:http://www.cnblogs.com/Greatest/archive/2009/09/03/1559533.html 雖然這裏一片的.net氣氛,到處充斥着像MVC、WPF、WorkFlow、LINQ等各種niub

原创 TCP知識片段

文章來源:http://blog.chinaunix.net/uid-29075379-id-3896840.html TCP之ACK發送情景 我現在的理解,在有以下幾種情景,TCP會把ack包發出去: 1.收到1個包,啓動200m

原创 Win32編程點滴2

文章來源:http://www.cnblogs.com/Greatest/archive/2009/08/31/1557422.html 前段時間我一直在研究一個問題:在一個DC中選擇一個英文字體,爲什麼還是能夠正確的繪製出中文?然後

原创 Win32編程點滴1

文字來源:http://www.cnblogs.com/Greatest/archive/2009/08/25/1553623.html 當我們非常熟練得用着MFC/ATL/WTL的時候,是否還記得如何用SDK方式編寫程序?本博客將關

原创 在Session 0中創建用戶進程

在Windows XP, Windows Server 2003或者更早期的Windows操作系統中,所有的服務和應用程序都是運行在與第一個登錄到控制檯的用戶得Session中。這個Session叫做Se

原创 windows平臺使用CMake編譯pcre庫

以下文章引用自百度百科: PCRE(Perl Compatible Regular Expressions中文含義:perl語言兼容正則表達式)是一個用C語言編寫的正則表達式函數庫,由菲利普.海澤(Philip Hazel)編寫。