原创 MFC中手動create窗口退出程序報錯的解決方法

        問題產生自一個需要將很多文件列表展示的MFC工程,很明顯這裏應該借用CListView。 當時,我的做法是:         1,由CListView類繼承一個新類CFileList         2,在ChildVi

原创 關於GDI+的那些事(1)——效率、雙緩衝

前言: 一年來做了一些圖像相關的工作,最開始也沒什麼基礎,所以本着簡單質樸的理念沒有試用那些第三方圖像處理庫,而是選用了windows提供的GDI/GDI+,結果也能勝任需要。 這玩意嘛,上手也不難,用幾天後,說實話,真感覺像網上一些人說

原创 關於GDI+的那些事(3)——在內存中將bmp數據壓縮爲jpeg

GDI+是支持各種常見圖片格式的,自帶各種編解碼器。它可以很方便的從各種格式創建image,也可以將image保存爲各種格式的磁盤文件或流。 出於以下兩點原因,我封了一個jpeg壓縮類(修改下應該也可用於其他格式): 1,同上篇一樣,有

原创 std::cin 與 ctrl+z 配合使用時遇到的問題

《C++ Primer》第四版第一章1.4.4節,早早的教了我們如何利用cin讀入未知數目的輸入。 關鍵在於利用失敗的cin>>返回0,一種觸發失敗的方式就是主動輸入文件結束符,而Windows系統下輸入文件結束符的方式,是按Ctrl +

原创 廣義表

廣義表是一種能嵌套自身的數據集合,即某個元素本身又可能是一個小的廣義表。 實現廣義表的過程中,我發現數據結構設計倒不難,難在如何表現、如何解析上。 最簡單的表現形式就是帶括號的字符串,比如(A,B,(C,D))這種。 那麼(, B)這種

原创 變長參數處理

有時候,有些函數,參數個數是非固定的,典型的比如printf()。 c++中有函數重載機制,可以編寫n個重載來達到此目的。但是明顯很麻煩,那麼以往c中是如何實現的呢? C提供了一組宏用於處理變長參數問題,主要包括以下幾個: va_lis

原创 多維數組

數組這玩意,我想很難找到不支持這種數據結構類型的語言了。 但是教材上爲什麼還要自己實現呢?因爲相對一位數組來說,多維數組還是複雜些的吧? 一開始也是覺得簡單到不想實現,後來在多維數組的顯示函數上,還是費了點腦筋的,用到了遞歸。 此外要注

原创 指向指針的指針

寫這篇文章,是因爲幾天前接受了百度一位面試官的電話面試,當時他在一道題某個函數的參數問題上反覆向我確認了幾遍,我都沒覺察到問題所在。 這幾天我下意識地琢磨到底哪裏錯了,今天猛然明白了他的想法,其實這個技術點我早已掌握,只是當時對問題未深入

原创 迪傑斯特拉算法

這是一個經典的求圖的最短路徑算法。 我發現不同的教材上面所採用的不同的描述方式實在都有點費解,所以這裏決定自己給出一種描述方式: 主要思想是將頂點劃分爲兩個集合:已找到最短路徑的加入S集,尚未找到的在U集。 (1)創建一個數組dist[

原创 堆分配存儲串

string類型是天天用的玩意,但是自己實現時,用順序存儲還是鏈式存儲更合適呢? 《數據結構》中介紹了三種方式: 1,定長順序存儲     長度有限,貌似沒大用處 3,塊鏈存儲 數組和鏈表的一種混用形式,原本直覺上認爲這種方式較合理,但仔

原创 八皇后問題

基本資料同理不羅列了。 不過我發現網上講這個問題的文章很多,真正講的清晰易懂的極少,還有些代碼亂的一塌糊塗。這裏貼篇我認爲還可以的文章供參考: 回溯法求解八皇后問題 因爲這個問題太著名,之前經常在眼睛前面晃過去,所以儘管《數據結構》爲此

原创 signed unsigned 引發的血案

bug描述: 問題產生於局域網傳輸一幅圖片。 服務端負責發送,是由另一個同事用C#寫的,我用C++寫接收客戶端。 我們約定在傳輸一幅圖片前,先傳固定4個字節的size信息,然後傳圖片數據。 結果發現有些圖片總是末尾壞掉一截或是乾脆就傳

原创 三言兩語說shader(二)黑屏效果

我看了下shader這東西要玩深也是要經年積累的,按一般的順序從漫反射到鏡面反射等等那樣來的話,太費精力。 我這次是要作一個遊戲開發技能的系統學習總結,所以shader這塊大致的計劃是以手頭項目爲依託,先看懂其中用到的大概三個,包括黑屏和

原创 三言兩語說shader(一)前言、一些資源

先說明下情況,本人也是剛剛開始學習shader,這次開更要寫的一系列文章也都是自學筆記形式,只求交流探討,不敢擅爲人師。 本來不想用這個標題的,搞得像什麼大師一樣,但憶起達叔曾經曰過:“男人不裝酷,枉在世上混”,我也就無所畏懼了。 所

原创 開更

快兩年沒更新這個博客了,時間6得飛起。 2014年7月停更後大概一直在學Unity3D,然後2015年5月終於如願進入了一家遊戲公司幹到現在。 覺得是時候再學習總結一些東西,讓技術上一個臺階了。