原创 利用關鍵代碼段實現線程同步

        關鍵代碼段,也稱臨界區,工作在用戶方式下。 是指一個小代碼段,在代碼能夠執行前,它必須獨佔對某些資源的訪問權。關鍵代碼段屬於用戶模式的對象,而不是內核對象,所以執行速度快,有效率, 也因此它不能跨進程使用; 關鍵代碼段可以

原创 虛函數表

http://blog.csdn.net/haoel/article/details/1948051/

原创 MFC文本編程

       應該說計算機對字符和文字的處理是最多的,在實際應用中也隨處可見,比如:將你的資料寫入word文檔、編寫Excel表格、演講前的PPT製作等等,這些都離不開計算機對文字的處理。在MFC框架中,微軟爲我們提供了很多關於字符和文字

原创 範式

 第一範式 1NF 屬性不可再分割,符合原子性。 沒什麼好解釋的,地球人都明白    第二範式 2NF 在1NF的基礎上: 不允許出現有field部分依賴於主鍵(或者說依賴於主鍵的一部分) 官方說法:數據

原创 互斥對象、事件對象與關鍵代碼段

互斥對象、事件對象與關鍵代碼段是windows三種常見的線程同步方法,它們之間的區別如下:        

原创 有關信號量的討論

       信號量(Semaphore)屬於內核對象,是與互斥量、事件對象、關鍵代碼段不同的線程同步方式,它允許多個線程在同一時刻訪問同一資源,但是需要限制在同一時刻訪問此資源的最大線程數目。初始情況下,可用資源數爲最大資源計數,每增加

原创 c++指針

1.int *p[3];  首先從P處開始,先與[]結合,因爲其優先級比*高,所以P是一個數組,然後再與*結合,說明數組裏的元素是指針類型,然後再與int結合,說明指針所指向的內容的類型是整型的,所以P是一個由返回整型數據的指針所組成的數

原创 利用事件對象實現線程同步

        事件對象也屬於內核對象,允許任意數目的線程對資源擁有同步訪問的權限,該對象包含:使用計數、指示人工重置事件/自動重置事件的布爾值、通知狀態的布爾值。事件對象包含人工重置事件對象和自動重置事件對象。         人工重置

原创 第一個MFC程序

        上一次和大家在一起探討了用VS創建控制檯項目和win32項目的區別,那麼從這一節起我們要開始真正的windows編程之旅:學習和使用MFC框架搭建窗口應用程序。我們先用VS自動創建,並分析使用MFC來啓動一個窗口程序的過程

原创 利用互斥量實現線程同步

        互斥量(mutex)屬於內核對象,它能夠確保線程擁有對單個資源的互斥訪問權。互斥對象包含一個使用數量,一個線程ID和一個計數器。其中,ID用於標識哪個線程擁有該互斥量,計數器用於指明線程擁有對象的次數。CreateMute

原创 常見排序算法總結

(部分內容摘自其他網絡資料) 插入排序 1.直接插入排序     原理:將數組分爲無序區和有序區兩個區,然後不斷將無序區的第一個元素按大小順序插入到有序區中去,最終將所有無序區元素都移動到有序區完成排序。     是否爲穩定排序:是  最

原创 菜單

        ”菜單欄、工具欄和狀態欄是組成Windows程序圖形界面的三個主要元素“,這節我們主要談談菜單欄的使用。 實現一個菜單響應函數         首先,做一個最簡單的示例,單擊菜單欄上的某一個菜單選項,對其進行響應。    

原创 消息隊列與消息循環

       作爲windows編程的開篇,我們首先要說一說消息隊列與消息循壞機制。之所以把它們放在第一篇來討論,是因爲消息隊列與消息循環機制是windows編程的基礎,如果不能很好的理這種機制,恐怕會在編程的時候會遇到很多困惑。好了,廢

原创 第一個win32程序

       上一篇博客我們寫了有關windows消息隊列和消息循環機制,那麼在這一篇中,我們打算實打實地動手編寫一個win32窗體程序。當然這個窗口程序非常簡單,簡單到幾乎沒有任何功能,也沒有使用任何框架,真可謂是最原始的原汁原味的wi

原创 MFC消息映射

       從孫鑫的《VC++深入詳解》中我們可知:windows程序是基於消息編程的,在windows窗口中做任何操作如:單擊鼠標、移動鼠標、輸入字符等,都會產生相應的消息。並且如果你使用了微軟的MFC框架來編寫GUI,那麼程序需要依