Time of Update: 2018-12-05
BOOL:Boolean值(布爾值,不是TRUE就是FALSE)
Time of Update: 2018-12-05
1 string to CString CString.format("%s",string.c_str()); 2 CString to stringstring str(CString.GetBuffer());CString.ReleaseBuffer()3 string to char *char *p=string.c_str();4 char * to stringstring str(char*);5 CString to char
Time of Update: 2018-12-05
一、結構vector 表示一段連續的記憶體地區每個元素被順序儲存在這段記憶體中對vector 的隨機訪問(比如先訪問元素5 然後訪問15 然後再訪問7 等等)效率很高因為每次訪問離vector起始處的位移都是固定的但是在任意位置而不是在vector 末尾插人元素則效率很低因為它需要把待插入元素右邊的每個元素都拷貝一遍類似地刪除任意一個而不是vector的最後一個元素效率同樣很低因為待刪除元素右邊的每個元素都必須被複製一遍這種代價對於大型的複雜的類對象來說尤其大一個deque
Time of Update: 2018-12-05
c++中輸出和輸入導螢幕和鍵盤的類別聲明包含再標題檔案<iostrream.h>中,而磁碟類檔案的 I/O則聲明再包含標題檔案<fstream.h>內。輸入和輸出格式:輸出到磁碟 ofsteam 識別字(“檔案名稱”) 從磁碟讀檔案 ifsteam 識別字("檔案名稱“)例如: ofstream outfile("data.txt"); //寫入到磁碟的data.txt中格式化輸入輸出:1
Time of Update: 2018-12-05
class CWinThread : public CCmdTarget{ CWnd* m_pMainWnd;};class CDocManager : public CObject{ CPtrList m_templateList;};class CWinApp : public CWinThread{ CDocManager*
Time of Update: 2018-12-05
開發中使用printf,cout等函數能夠很方便地從console監控程式運行,但是對於GUI程式,雖然程式中使用了printf,cout但是無法查看stdout,stderr的輸出 有幾種方法可以查看GUI程式的輸出(VS)1.使用VC的trace函數代替printf,但是必須include
Time of Update: 2018-12-05
標頭檔通過 include 前置處理器指示符(preprocessor include directive) 而成為我們程式的一部分。前置處理器發現 #include 指令後,就會尋找後跟的檔案名稱並把這個檔案的內容包含到當前檔案中。被包含檔案中的文本將替換原始碼檔案中的#include 指令, 就像你把被包含檔案中的全部內容鍵入到源檔案中的這個位置一樣。 #include 指令有兩種使用形式 #include <stdio.h&
Time of Update: 2018-12-05
新版Ogre的幀監聽器(FrameListener)新加了一個方法,frameRenderingQueued,查看例子後發現,原先的frameStarted基本都被這個方法所代替了,決定開啟原始碼看看Ogre的意圖。 我們從renderOneFrame開始分析,這個方法只有三句話。Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-05
剛開始使用Ogre時總是碰到記憶體泄露,而且往往是一泄千裡,等半分鐘才能打完日誌,我想這和Ogre中的大量大對象很有關係。下面就來分析一下記憶體泄露的產生原因。1. MFC中使用Ogre時發生的記憶體泄露這個問題比較有意思,其實並沒有發生泄露,而是MFC自作主張的認為發生了記憶體泄露,實際上記憶體並不是沒有釋放,而是在VC報記憶體泄露之後釋放,先來看一看MFC報記憶體泄露時的呼叫堆疊:msvcr71d.dll!_CrtDumpMemoryLeaks() 行2208
Time of Update: 2018-12-05
傳值和傳引用 在現在常用的文本程式設計語言(C++, Java, C#)中,調用子函數時的傳參方式主要是傳引用方式,就是說,告訴被調用的函數的是參數所在的位置,而不是參數的資料。C++ 為了保持和 C 語言的相容,一般的簡單資料還是使用值傳遞,但對於大塊的資料,比如數組,字串,結構,類等等,也基本上都是引用形式傳遞的。
Time of Update: 2018-12-05
1.cout在設計時具有智能判斷功能,不論是char*類型,還是string類型,都能得到正確的結果。 2.wcout指定要輸出寬字元,每個字元佔兩個位元組,我們所用的字串如:"hello",要想讓其按寬字元處理,必須加L,即L"hello",中文也是這樣要求。
Time of Update: 2018-12-05
static的用法: 靜態變數作用範圍在一個檔案內,程式開始時分配空間,結束時釋放空間,預設初始化為0,使用時可以改變其值。 靜態變數或靜態函數只有本檔案內的代碼才能訪問它,它的名字在其它檔案中不可見。 用法1:函數內部聲明的static變數,可作為對象間的一種通訊機制 如果一局部變數被聲明為static,那麼將只有唯一的一個靜態分配的對象,它被用於在該函數的所有調用中表示這個變數。這個對象將只在執行線程第一次到達它的定義使初始化。 用法2:局部靜態對象
Time of Update: 2018-12-05
只要沒有在類A中定義類B的成員對象,就可以不用在類A標頭檔中包含類B的標頭檔,你可以以在類A中用一個指向類B對象的指標取代定義一個類B對象的方式實現,這樣,你只要在類A的標頭檔中聲明一下類A即可,該指標的初始化放到A的實現檔案中去(如建構函式中用: pB = (B*) new B()),當然在類A的實現檔案中還是要加上包含類A頭件的指令。但這樣已經解決了類A與類B的循環相依性問題。同理,要解決M-V-C間的循環相依性就輕而易舉了。 --------------------
Time of Update: 2018-12-05
對於視窗程序,一般有個特點:視窗大部分的地區保持不變,只有部分地區需要重新繪製。如果將整個視窗全部重新整理的畫,就做了許多不必要的工作,因而,MFC採用了一套基於無效區的處理機制。在分析無效區處理之前,我們要明白一個現實,現在的機器還不夠牛,如果夠牛的話,我們乾脆將整個視窗不斷的重新繪製好了。事實上即使夠牛也不行,對於一個單線程程式,通過一個while迴圈不斷的重新整理視窗,程式也無法相應其他訊息(除非使用多線程),看來使用無效區的處理機制還是有其必然性的。
Time of Update: 2018-12-05
class TerrainImpl //地圖 { Ogre::SceneManager* mSceneMgr; //new ET::TerrainManager(mSceneMgr); Ogre::SceneNode* mTerrainNode; //Tile的父節點 節點名預設為"ETTerrain/Terrain" createTiles() bool mTerrainLoaded;
Time of Update: 2018-12-05
O M
Time of Update: 2018-12-05
View Port和Camera就是攝影機的網路攝影機,Render Target 就是膠帶,那麼Render System 就是一個光學系統,它把從網路攝影機進來的光進行處理變換,然後再把結果寫到Render Target中,而Root 就是各種各樣的道具Scene Manager(情境組織) 像導演,布置情境、燈光、服飾;同時還指揮著演員的表演方式,最後就是扛著攝影機進行拍攝(汗....) 導演 Scene Manager攝影機
Time of Update: 2018-12-05
大家都知道,windows API編程以及其訊息處理,其過程都清晰可見,大體步驟如下:1)聲明訊息視窗類2)註冊視窗類別3)createwindows4)訊息獲得以及指派(windows procedure)。但是,對於MFC同樣是Windows程式,其流程卻顯得灰暗不明。現具體分析如下:在MFC中有兩個重要的類,CWinApp,CFrameWnd,它們兩個的存在在某種意義上來說代替了WinMain 和 WinProc的存在。對於任何一個MFC程式,都存在一個Application
Time of Update: 2018-12-05
// cctest.cpp: Simple program to illustrate a problem calling // operator= from copy constructor. This can result in member // objects getting initialized twice. To compile: cl cctest.cpp // #include <stdio.h> //#define GOOD /////////////////
Time of Update: 2018-12-05
http://ivanvic.blogbus.com/logs/1787439.html 如何理解LPCTSTR, L表示long指標, 這是為了相容Windows 3.1等16位作業系統遺留下來的, 在win32中以及其他的32為作業系統中, long指標和near指標及far修飾符都是為了相容的作用。沒有實際意義。P表示這是一個指標C表示是一個常量T在Win32環境中, 有一個_T宏, 這個宏用來表示你的字元是否使用UNICODE, 如果你的程式定義了UNICODE或者其他相關的宏,