原创 關於I2C和SPI總線協議

IICvs SPI          現今,在低端數字通信應用領域,我們隨處可見IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是這兩種通信協

原创 談在Debug和Release模式下輸出調試信息

在調試程序時,有時候設置斷點單步運行並不能查出問題的所在,比如程序可能在運行一段時間後死掉了,或者對於Release版本運行不正常等等原因吧,這時需要通過設置一些輸出信息,來幫助定位錯誤發生的位置,這點非

原创 軟件人員推薦書目 ( 大師篇 )

一、 科學哲學和管理哲學 【1】 "程序開發心理學"(The Psychology of Computer Programming : Silver Anniversary Edition)  【2】 "系統化思維導論"(An Intro

原创 MFC 框架各類指針的獲取

MFC指針的獲取 1、獲取應用程序指針 CMyApp* pApp=(CMyApp*)AfxGetApp(); 2、獲取主框架指針 CWinApp 中的公有成員變量 m_pMainWnd 就是主框架的指針 CMainFrame* pMai

原创 學習軟件開發應該看的書

1、 C語言提升 《c和指針》 《c缺陷和陷阱》 《c專家編程》 這三本書是一個初級C程序員必看的三本書,同時也是應屆新員工必須好好學習的教材,非常適合剛畢業的大學生學習 2、  C++語言提升 《Effective C++:改善程序與設

原创 Winsock五種IO模型的性能分析

Winsock五種I/O模型的性能分析 五種I/O模型的性能分析 重疊I/O模型的另外幾個優點在於,微軟針對重疊I/O模型提供了一些特有的擴展函數。當使用重疊I/O模型時,可以選擇使用不同的完成通知方式。 採用事件對象通知的重疊I/O模型

原创 VC++如何派生控件並實現自繪

1.首先從一個現成的控件類(比如CButton)設計派生出自己的控件類,比如CButtonExte, 2.實現虛函數virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct): L

原创 OnEraseBkgnd、OnPaint與畫面重繪

問題背景: 窗體在重繪時,由於過頻的刷新會引起閃爍現象——窗體在刷新時,總要有一個擦除原來圖象的過程OnEraseBkgnd,它利用背景色填充窗體繪圖區,然後在調用新的繪圖代碼進行重繪,這樣一擦一寫造成了圖象顏色的反差。當WM_PAINT

原创 C/C++ union用法

在C/C++程序的編寫中,當多個基本數據類型或複合數據結構要佔用同一片內存時,我們要使用聯合體;當多種類型,多個對象,多個事物只取其一時(我們姑且通俗地稱其爲“n 選1”),我們也 可以使用聯合體來發揮其長處。首先看一段代碼: union

原创 VC++模態對話框和非模態對話框

MFC中有兩種類型的對話框:模態對話框和非模態對話框。 模態對話框是指當其顯示時,程序會暫停執行,直到關閉這個模態對話框後,才能繼續執行程序中其他任務。非模態對話框是指當其顯示時,允許轉而執行程序中其他任務,而不用關閉這個對話框。 模

原创 C#與C++的混合編程

C#寫界面比較方便,而C++則擅長寫算法,所以將兩者結合起來將會加快程序的開發速度,並保證程序的質量。但C#與C++的混合編程有很多細節問題需要注意,下面簡要列舉一些並指出相應的解決辦法。        1. 將本機C++代碼(指非託管C