Time of Update: 2018-12-06
情景引入 一. 處理對象八個方向的移動(左上,右下,等)二. 功能按鍵加按鍵組合(Ctrl + A,等)該處理類似是與情景一三. 雙人對弈的遊戲(如格鬥類)四. 同時響應多按鍵.(如音樂類遊戲,同步選取F和J按鍵才算擊中)(注意是同時相應,而不是拿個什麼標識來處理那個按下了!那個未按下) 相關解決方案 1》 對於處理情景一,網上有比較多的解決方案,主要實現方式為,數組矩陣,也有少量的使用布爾標識來處理代碼就不貼了:部落格園的 作者 nowpaper
Time of Update: 2018-12-06
出處:未知了.. "蜘蛛"(Spider)是Internet上一種很有用的程式,搜尋引擎利用蜘蛛程式將Web頁面收集到資料庫,企業利用蜘蛛程式監視競爭者的網站並跟蹤變動,個人使用者用蜘蛛程式下載Web頁面以便離線使用,開發人員利用蜘蛛程式掃描自己的Web檢查無效的連結……對於不同的使用者,蜘蛛程式有不同的用途。那麼,蜘蛛程式到底是怎樣工作的呢?
Time of Update: 2018-12-06
C++之所以是這樣的 ——《C++語言的設計和演化》讀書筆記(1) C++之所以這樣,大多都源自於Bjarne Stroustrup在實際研究過程中所遇到的問題。為瞭解決這樣那樣的問題。他是個實用主義者。正是為瞭解決實際的問題,C++才有了類,才有了與其他語言的相容性,才有這樣的速度。 “類的概念使我能把應用中的概念直接映射到語言結構,是My
Time of Update: 2018-12-06
智者的眼光 ——《C++語言的設計和演化》讀書筆記(2) 我不得不佩服Stroustrup充滿睿智的頭腦:在80年代初,就設計出了那麼多現代C++中所具備的特徵: ● 類——目前幾乎所有流行物件導向語言都有的元素,甚至關鍵字都差不多。 ● 衍生類別(繼承的體現,哪一個物件導向語言不具備繼承的性質呢?)
Time of Update: 2018-12-06
從C到C++ —《C++語言的設計和演化》讀書筆記(3) 不能說哪種語言取代了哪種語言,只是一種新語言的出現必然伴隨著她的新的特徵。從C到帶類的C,再到C++,逐漸形成了一些新的語言特徵:
Time of Update: 2018-12-06
本文就說明在C#中如何編寫代碼來調用SAP中的RFC函數擷取資料。(Winform32) 首先需要引用兩個NCO3.0的DLL,在文後。 然後在程式碼頁面引用: using SAP.Middleware.Connector; 然後所有的代碼如下:namespace SAP_RFC{ public partial class Form1 : Form { string MATNR = string.Empty; public
Time of Update: 2018-12-06
一台機器上可能不只有一個網卡,但每一個網卡只有一個MAC地址,而每一個網卡可能配置有多個IP地址;如平常的膝上型電腦中,就會有無線網卡和有線網卡(網線介面)兩種;因此,如果要獲得本機所有網卡的IP和MAC地址資訊,則必須順序獲得每個網卡,再依次擷取其資訊等;在windows sdk中,用IP_ADAPTER_INFO結構體儲存網卡資訊,包括網卡名、網卡描述、網卡MAC地址、網卡IP等,該結構體的主要描述如下所示:typedef struct _IP_ADAPTER_INFO { struct
Time of Update: 2018-12-06
每個線程核心對象都維護著一個CONTEXT結構,裡面儲存了線程啟動並執行狀態,使得CPU可以記得上次運行該線程運行到哪裡了,該從哪裡開始運行,該線程內部資料如何如何。 在Platform SDK文檔中記錄著CONTEXT結構的資訊。該結構是與CPU有關的,特定的CPU對應著特定的CONTEXT結構。 x86類型CPU對應的CONTEXT結構文檔如下: typedef struct _CONTEXT { // // The flag values within this
Time of Update: 2018-12-06
互斥核心對象確保一個線程獨佔地訪問資源。 互斥核心對象的行為特徵和關鍵程式碼片段有點類似,但是它是屬於核心對象,而關鍵程式碼片段是使用者模式對象,這導致了互斥核心對象的運行速度比關鍵程式碼片段要低。所以,在考慮線程同步問題的時候,首先考慮使用者模式的對象。 但是,互斥核心對象可以跨進程使用,當需要實現多進程之間的線程同步,就可用考慮使用互斥核心對象。而這點,關鍵程式碼片段無能為力。 在互斥核心對象內部,有以下一些重要的資料:1、使用計數:表明該互斥核心對象被開啟的次數。2、線程ID3
Time of Update: 2018-12-06
每個線程都有一個“優先順序”,範圍是0~31,0為最低優先順序,31為最高優先順序。當系統決定哪個線程需要調度的時候,首先查看是否存在優先順序為31的可調度線程,如果存在,就從中選擇一個進行調度。當該線程的時間片到達之後,系統查看是否存在另一個優先順序為31的可調度線程,如果存在,就調度它。 只要有一個可調度的優先順序為31的線程存在,那麼系統絕對不會調度優先順序為0~30的線程,這樣會導致其他線程“饑餓”。 高優先順序線程往往“打斷”低優先順序線程的執行。比如,當一個優先順序為15的線
Time of Update: 2018-12-06
概述函數對象是重載()運算子的類類型對象,即該類實現operator()()函數。STL將一組標準的函數對象定義為模板,,可以使用它們來建立一個函數對象,其中overload()運算子函數使用我們的物件類型。如:STL定義模板less<T>。如果將該模板執行個體化為less<myNumber>,我們就有了一個函數物件類型,實現operator()()來對myNumber類型的對象進行大小比較。很多演算法使用函數對象來指定要進行的二元運算,或者指定謂詞來確定進行特定運算。謂
Time of Update: 2018-12-06
記得在大學學java時,同學在下載了很多java的視頻,看到裡面有些是介紹簡單遊戲開發的,馬士兵老師講的,挺感興趣的。一起看了看視頻寫了寫程式。現在畢業了,因為工作中用的是C#,最近很想拿C#把以前寫的坦克大戰重寫下,來熟悉熟悉C#的基本文法。程式很簡單,跟java代碼相比沒有多大改動實現方法如下1.在form中添加一個panel,在panel的 Paint方法中得到Graphics對象 2.通過Graphics對象再panel畫出坦克,子彈等相關內容3.添加timer控制項
Time of Update: 2018-12-06
lambda運算式C++
Time of Update: 2018-12-06
本來這篇內容在書中是在“其他線程同步函數”這一節中的。這節中介紹了另外的幾個等待函數,比如WaitForInputIdle、MsgWaitForMultipleObjects、WaitForDebugEvent,感覺用途不大,只有SignalObjectAndWait這個函數用途比較大,該函數筆者已經在前面的“等待函數”這一篇中寫過了。 本篇主要討論這本書新增加的內容,就是Windows Vista中提供的調查死結的方法。 在Windows
Time of Update: 2018-12-06
迭代器除了在STL中遍曆序列對象外,還有其他更多的迭代器被iterator所定義。iterator標頭檔定義迭代器的幾個模板將資料從源傳到目的地。流迭代器(stream iterator)作為指向輸入或輸出資料流的指標,它們可以用來在流和任何使用迭代器的源或目的地之間傳輸資料,如演算法。插入迭代器(inserter
Time of Update: 2018-12-06
裝置的輸入輸出,即裝置I/O,可以分為“同步”和“非同步”兩種方式。同步的裝置I/O,調用的API函數總是等到裝置I/O完成才返回。而非同步裝置I/O,可以通過多種方法來實現,但是其根本原理是得到“裝置I/O的完成通知”。 本篇主要討論如何開啟和關閉一個裝置。注意,這裡的裝置,不是指像鍵盤、顯示器那種實體。而是一種抽象的概念,指一種與外界通訊的對象,可以接受外界的輸入,也可以對外界的請求作出響應,稱之為裝置I/O。這個概念比較抽象,這些裝置往往和某個核心對象關聯。要開啟這些裝置,就要建立
Time of Update: 2018-12-06
線程需要相互連信,當多個線程訪問共用資源的時候;當一個線程結束一個任務,然後要通知另一個線程的時候,我們需要進行線程同步的控制。 要讓共用資源不被破壞,或者讓另一個線程能夠在適當的時候被調度,這就是線程同步需要解決的問題。 Windows Vista提供了多種線程同步的方法,這裡主要介紹在使用者模式下的線程同步。1、互鎖函數族:Interlocked*函數群(*表示省略後面的字元,即以Interlocked開頭)。2、關鍵程式碼片段:Criticle
Time of Update: 2018-12-06
本來不打算寫這篇的,但是檔案的重要性大家都知道。在裝置I/O中,有一種裝置叫檔案裝置,這是一個抽象的概念,就把它理解為檔案就行了。 檔案裝置,可以通過CreateFile函數開啟,得到一個檔案物件控點。 在檔案中,有兩個比較重要的屬性:1、檔案大小:在32位中最大為4GB,64位中可以達到16EB。2、檔案讀寫指標:這個指標表明讀寫位置,大小範圍可以超出檔案的大小。 先討論檔案的大小。 要得到檔案的大小,可以使用GetFileSizeEx函數:Code highlighting
Time of Update: 2018-12-06
“訊號量核心對象”用於對資源進行計數。 在訊號量核心對象內部,和其他核心對象一樣,有一個使用計數,該使用計數表示訊號量核心對象被開啟的次數。 訊號量核心對象中還有兩個比較重要的資料,分別表示最大資源數和當前資源數。最大資源數表示能夠管理的資源的總數,當前資源數表示目前可以被使用的資源數量。 可以使用CreateSeamphore函數來建立一個訊號量核心對象,該函數成功返回控制代碼,失敗返回NULL。Code highlighting produced by Actipro
Time of Update: 2018-12-06
上一篇討論有關“互鎖函數家族”處理線程同步的方法。本書中還描述了“快取行”(cache