Time of Update: 2018-12-05
目前我的3D引擎大致已經把檔案處理相關的功能完成, 上面一個是記錄檔管理. 暫時寫成HTML的吧,想換再加.下面是兩張我的打包工具的.寫完了打包功能,就順便把工具一起給寫了.採用了壓縮及相關的結構儲存處理.以後資源這些封裝會好一點了.加油! 此工具可以大量匯出匯入.Engine 在相應的某些關鍵位置使用了彙編支援. 下一步打算把XML解析寫了,檔案處理就暫時實現這麼多. 希望能夠比以前的東西更成熟. 同時感謝公司讓我學了很多東西.....
Time of Update: 2018-12-05
前面已經講過volatile關鍵字,當我們在處理多線程或者類比一個類似COM的引用計數時,我們為了防止多個線程同時訪問一個變數,導致不可預料的結果時。我們便可以方便的使用InterLockedIncrement 和 InterLockedDecrement 來對這個變數進行鎖定訪問: long volatile lReference;InterlockedIncrement( &lReference ); // 對這個引用計數進行鎖定並ADD
Time of Update: 2018-12-05
在遊戲編程中,我們經常聽到序列化這個詞彙。在一些網路通訊和資料處理時,我們便會用到序列化。這裡先不具體說明序列化。這裡只說序列化過程中可能用到的位元組對齊的問題: 我們首先是定義了這樣一個宏: #define ALIGN( __size, __bits ) ( ( ( ( __size - 1 ) >> __bits ) + 1 ) << __bits ) 我們在使用的時候: DWORD dwSize = ALIGN( dataSize, 2
Time of Update: 2018-12-05
Chromium程式在運行起始位置有代碼base::EnableTerminationOnHeapCorruption();void EnableTerminationOnHeapCorruption() { // Ignore the result code. Supported on XP SP3 and Vista. HeapSetInformation(NULL, HeapEnableTerminationOnCorruption, NULL,
Time of Update: 2018-12-05
時間過得真快,距離連載完【C/C++語言入門篇】已經6個月之久了。感謝長期以來支援我的朋友們,同時也感謝路過批評與建議的朋友們,如果沒有你們,我想我將沒有收穫,也將沒有信心堅持在這裡。 近兩個月一直忙著各種事情,加之要將本質工作做好,寫博的時間基本都抽不出來了。有的時候想寫,但又似乎提不起精神,比起兩年前大二時期的精力,簡直就沒得比。雖然不知道這個系列是否能夠有足夠的時間寫完,但是我想先將系列的開篇下撂在這兒,也算是給自己壓力,不管怎麼都不能丟下記錄的習慣。 回到正題,這個系列寫設計模式的原因有
Time of Update: 2018-12-05
前面已經寫過兩次inline hook的博文了,第一篇為:《C/C++ HOOK API(原理深入剖析之-LoadLibraryA)》,這篇博文的方法是通過修改任意函數的前面N個位元組,實現跳轉並進入到我們自訂的hook函數裡,執行完畢我們的hook函數之後,再直接調用被hook的函數。第一篇的方法沒有考慮多線程的情況,所以在多線程環境下會有問題。第二篇為:《 Inline HOOK API
Time of Update: 2018-12-05
1、強烈建議仔細閱讀官方文檔,chromium項目一直在快速發展,編譯配置也可能更新。本文檔不與官方文檔同步更新,因此僅供參考。2、必須要4G記憶體,我最開始使用2G記憶體有個工程串連失敗,導致後面部分工程失敗。編譯中8G記憶體都會消耗完,所以建議配置8G及以上記憶體。3、官方強烈建議使用64位系統。最好是Win7 64位系統,如果使用XP 32位系統,尤其是Ghost版的XP 32位系統,後面處理原始碼時會遇到一些問題。4、安裝VS2008,必須安裝X64編譯工具。5、如果安裝的是VS2008
Time of Update: 2018-12-05
很多時候,我都會想,人活著到底是為了什嗎?為了名利?為了生活?為了追求?為了責任?或者就為了簡簡單單的活著? 這個問題可能會將很多人給問住了,可能在你活了十多年,甚至活了幾十年都不知道這一輩子到底是為了什麼而活著。有時候覺得多讀一些書是好事,有時候又覺得少讀一些書未必是件壞事,有很多人學識見識都比較低,他們想得比較簡單,人活著就是為了活著,不為別的,能吃飽飯,能在某個時候吃上一頓美餐也覺得打心底裡滿足。 我相信很多人都有一種感觸,那就是小時候很快樂,小時候活得很簡單,不用考慮太多人生的意義,作為
Time of Update: 2018-12-05
HTTP狀態代碼及含義大全當使用者在防問Internet資訊服務(IIS)的伺服器上的內容時時,IIS伺服器響應請求,會自動返回一個表示該請求的狀態的數字代碼,提供關於相關請求的狀態資訊。同樣當搜尋引擎蜘蛛在抓取的過程中,伺服器也會相關的http狀態代碼,通過瞭解http狀態碼,可以更詳細的分析日誌中的訪問情況,下面Seoer惜緣收集的http狀態碼含義表與部分解決方案: 100 - 表示已收到請求的一部分,正在繼續發送餘下部分。 101 - 切換協議。 2xx -
Time of Update: 2018-12-05
寫了這樣一段代碼,我們來做分析:#include <iostream>int main( void ){ int* ptr = new int[ 5 ]; for ( int i = 0; i < 5; i++ ) { ptr[ i ] = i + 1; std::cout << ptr[ i ] << std::endl; }} 我們new了5個資料的int類型空間,我們然後來看記憶體裡面的分布:
Time of Update: 2018-12-05
作者:孫曉明,華清遠見嵌入式學院講師。【實驗環境】 1、主 機:Fedora9 DVD 發行版 2、目標機:虛擬機器 3、源碼包: ftp://ftp.qtsoftware.com/qt/source/qt-x11-opensource-src-4.5.2.tar.gz ftp://ftp.qtsoftware.com/qt/source/qt-embedded-linux-opensource-src-4.5.2.tar.gz
Time of Update: 2018-12-05
前面我們說了new在分配空間的一些細節,這裡作一些補充。其實我們在調用new時,在他的地層重載運算子裡面是這樣實現的:void *p; while ((p = malloc(size)) == 0) if (_callnewh(size) == 0) _STD _Nomemory(); return (p); 可以看出它是直接調用了我們C語言中常用的malloc函數來實現。由此我們可以知道malloc也同樣會分配一個塊頭。32Byte + dataSize + 4( 0xfdfdfdfd
Time of Update: 2018-12-05
當兄弟們還在打呼嚕的時候我已經在洗溯了。哎。。上班好象就少了幾分自由。。 每周還是想回學校,感覺自己還不習慣不當學生。昨天回去填了個申請,回去是一種心情。第二天就是另外一種心情。6點多鐘就來到了校門口等車,風好大。。好不容易等到車了,還得坐一個多小時還得轉車一次。累啊!堵車就更慘了。。來到公司就8點了。還算早,還有一個小時閑暇時間。 呼呼。。
Time of Update: 2018-12-05
這個撞球DEMO,用的D3D+C++寫成的,大概集中寫了一周多一點時間。也算是那個時候對D3D的一定認識的結果吧。還有很多不足。 1。裡面的素材全部是從網上搜集。 2。AI只實現了一個難度,本來打算再寫下去的,哎。。。貌似有心而力不足。沒那麼多時間去完善了。 就這麼個東西,老婆居然能打上癮,可能也是我想進一步完善的原因之一吧。 3。裡面的碰撞檢測都是通過距離檢測實現。先放這吧。。
Time of Update: 2018-12-05
作者:馮利美,華清遠見嵌入式學院講師。本文主要對linux系統bash設定檔進行比較分析。1. 首先是兩個全域的設定檔。/etc/profile:此檔案為系統的每個使用者佈建環境資訊,當使用者第一次登入時,該檔案被執行。並從/etc/profile.d目錄的設定檔中搜集shell的設定。/etc/bash.bashrc:為每一個運行bash shell的使用者執行此檔案,當bash shell被開啟時,該檔案被讀取。2.
Time of Update: 2018-12-05
作者:孫曉明,華清遠見嵌入式學院講師。 有時候,用vmware裝linux系統的時候沒有分配足夠的空間,後來用的時候才發現空間不夠,但重新安裝系統又太麻煩,所以只有想辦法來再增加一塊硬碟了。但如何增加呢,那下面就詳細說一下添加過程吧: 1、 退出LINUX系統,在vmware啟動介面中選擇VM菜單下的Settings來增加磁碟,然後選擇add,選擇增加hard disk點擊Next, 2、 選中create a new virtual
Time of Update: 2018-12-05
作者:孫曉明,華清遠見嵌入式學院講師。UNIX上處理序間通訊的方式有多種,早期的有無名管道、有名管道和訊號,後來又引入了IPC對象和通訊端。訊號是在軟體層次上對中斷機制的一種類比,是一種非同步通訊方式。訊號可以直接進行使用者空間進程和核心進程之間的互動,核心進程也可以利用它來通知使用者空間進程發生了哪些系統事件。使用者進程對接收到的訊號有三種處理方式:預設處理:Linux對每種訊號都定義了預設的操作 忽略訊號:對接收到的訊號不做任何處理 捕捉訊號:預先定義訊號處理函數
Time of Update: 2018-12-05
哎,下班回家就開始大掃除,一直到淩晨才搞定,真的累了。但是計劃的是今天必須將本文寫完,不寫完睡不著覺。那就儘快切入正題吧!
Time of Update: 2018-12-05
差不多已經有3個月沒有更新部落格了,不知道都忙什麼去了。我一直以來有一個不知道什麼時候開始有的準則,要寫博文就得寫好,在每次的寫作中應該總結上次的一些寫法,彌補一些不足,同時要看到進步。所以在這3個月期間做了很多次打算要寫本篇的,可總是被一些事和當時的心情所影響,為了追求品質,因此跳票到現在了,在此跟大家說聲對不起。之前的一個月一篇的承諾沒有實現,以後改正。 好了,回到正題,在瞎扯淡就又該說對不起了^_^。本篇打算介紹GOF中行為型模式之觀察者模式(Observer),Observer模式應該算
Time of Update: 2018-12-05
#include<stdio.h>#include<stdlib.h>void main(){ char c1; int delt; FILE *fp; fp=fopen("wo.txt","r");//這個檔案名稱可不能搞錯了 do { fscanf(fp,"%c",&c1); if(c1>=32&&c1<=126) {