MFC資料類型(Data Type)

BOOL:Boolean值(布爾值,不是TRUE就是FALSE)

string — CString — char * 轉換 以及GetBuffer、ReleaseBuffer

 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

順序容器list vector

一、結構vector 表示一段連續的記憶體地區每個元素被順序儲存在這段記憶體中對vector 的隨機訪問(比如先訪問元素5 然後訪問15 然後再訪問7 等等)效率很高因為每次訪問離vector起始處的位移都是固定的但是在任意位置而不是在vector 末尾插人元素則效率很低因為它需要把待插入元素右邊的每個元素都拷貝一遍類似地刪除任意一個而不是vector的最後一個元素效率同樣很低因為待刪除元素右邊的每個元素都必須被複製一遍這種代價對於大型的複雜的類對象來說尤其大一個deque

ofstream ifstream 檔案操作

 c++中輸出和輸入導螢幕和鍵盤的類別聲明包含再標題檔案<iostrream.h>中,而磁碟類檔案的 I/O則聲明再包含標題檔案<fstream.h>內。輸入和輸出格式:輸出到磁碟  ofsteam 識別字(“檔案名稱”) 從磁碟讀檔案 ifsteam 識別字("檔案名稱“)例如: ofstream outfile("data.txt"); //寫入到磁碟的data.txt中格式化輸入輸出:1 

MFC 模板、文檔、視圖、架構的關係

class CWinThread : public CCmdTarget{    CWnd* m_pMainWnd;};class CDocManager : public CObject{    CPtrList m_templateList;};class CWinApp : public CWinThread{    CDocManager*

在VS中為GUI程式添加console

開發中使用printf,cout等函數能夠很方便地從console監控程式運行,但是對於GUI程式,雖然程式中使用了printf,cout但是無法查看stdout,stderr的輸出 有幾種方法可以查看GUI程式的輸出(VS)1.使用VC的trace函數代替printf,但是必須include

靠,#include都要忘了

標頭檔通過   include   前置處理器指示符(preprocessor   include   directive)   而成為我們程式的一部分。前置處理器發現   #include   指令後,就會尋找後跟的檔案名稱並把這個檔案的內容包含到當前檔案中。被包含檔案中的文本將替換原始碼檔案中的#include   指令,   就像你把被包含檔案中的全部內容鍵入到源檔案中的這個位置一樣。     #include   指令有兩種使用形式     #include   <stdio.h&

Ogre新加FrameListener.frameRenderingQueued分析

新版Ogre的幀監聽器(FrameListener)新加了一個方法,frameRenderingQueued,查看例子後發現,原先的frameStarted基本都被這個方法所代替了,決定開啟原始碼看看Ogre的意圖。     我們從renderOneFrame開始分析,這個方法只有三句話。Code highlighting produced by Actipro CodeHighlighter

Ogre中的記憶體泄露

剛開始使用Ogre時總是碰到記憶體泄露,而且往往是一泄千裡,等半分鐘才能打完日誌,我想這和Ogre中的大量大對象很有關係。下面就來分析一下記憶體泄露的產生原因。1. MFC中使用Ogre時發生的記憶體泄露這個問題比較有意思,其實並沒有發生泄露,而是MFC自作主張的認為發生了記憶體泄露,實際上記憶體並不是沒有釋放,而是在VC報記憶體泄露之後釋放,先來看一看MFC報記憶體泄露時的呼叫堆疊:msvcr71d.dll!_CrtDumpMemoryLeaks() 行2208

傳值和傳引用

傳值和傳引用    在現在常用的文本程式設計語言(C++, Java, C#)中,調用子函數時的傳參方式主要是傳引用方式,就是說,告訴被調用的函數的是參數所在的位置,而不是參數的資料。C++ 為了保持和 C 語言的相容,一般的簡單資料還是使用值傳遞,但對於大塊的資料,比如數組,字串,結構,類等等,也基本上都是引用形式傳遞的。   

cout wcout ifstream 處理中文時的問題

 1.cout在設計時具有智能判斷功能,不論是char*類型,還是string類型,都能得到正確的結果。 2.wcout指定要輸出寬字元,每個字元佔兩個位元組,我們所用的字串如:"hello",要想讓其按寬字元處理,必須加L,即L"hello",中文也是這樣要求。

static、extern、volatile的用法

static的用法: 靜態變數作用範圍在一個檔案內,程式開始時分配空間,結束時釋放空間,預設初始化為0,使用時可以改變其值。 靜態變數或靜態函數只有本檔案內的代碼才能訪問它,它的名字在其它檔案中不可見。 用法1:函數內部聲明的static變數,可作為對象間的一種通訊機制 如果一局部變數被聲明為static,那麼將只有唯一的一個靜態分配的對象,它被用於在該函數的所有調用中表示這個變數。這個對象將只在執行線程第一次到達它的定義使初始化。 用法2:局部靜態對象

迴圈包含的解決辦法

只要沒有在類A中定義類B的成員對象,就可以不用在類A標頭檔中包含類B的標頭檔,你可以以在類A中用一個指向類B對象的指標取代定義一個類B對象的方式實現,這樣,你只要在類A的標頭檔中聲明一下類A即可,該指標的初始化放到A的實現檔案中去(如建構函式中用:     pB   =   (B*)   new   B()),當然在類A的實現檔案中還是要加上包含類A頭件的指令。但這樣已經解決了類A與類B的循環相依性問題。同理,要解決M-V-C間的循環相依性就輕而易舉了。 --------------------

OnPaint工作原理

對於視窗程序,一般有個特點:視窗大部分的地區保持不變,只有部分地區需要重新繪製。如果將整個視窗全部重新整理的畫,就做了許多不必要的工作,因而,MFC採用了一套基於無效區的處理機制。在分析無效區處理之前,我們要明白一個現實,現在的機器還不夠牛,如果夠牛的話,我們乾脆將整個視窗不斷的重新繪製好了。事實上即使夠牛也不行,對於一個單線程程式,通過一個while迴圈不斷的重新整理視窗,程式也無法相應其他訊息(除非使用多線程),看來使用無效區的處理機制還是有其必然性的。    

ETM 資料分析

 class TerrainImpl                       //地圖 {    Ogre::SceneManager* mSceneMgr;     //new ET::TerrainManager(mSceneMgr);     Ogre::SceneNode* mTerrainNode;     //Tile的父節點  節點名預設為"ETTerrain/Terrain"  createTiles()     bool mTerrainLoaded;           

設計模式摘要

O M

OGRE中的一些形象比喻

View Port和Camera就是攝影機的網路攝影機,Render Target 就是膠帶,那麼Render System 就是一個光學系統,它把從網路攝影機進來的光進行處理變換,然後再把結果寫到Render Target中,而Root 就是各種各樣的道具Scene Manager(情境組織) 像導演,布置情境、燈光、服飾;同時還指揮著演員的表演方式,最後就是扛著攝影機進行拍攝(汗....) 導演                 Scene Manager攝影機              

MFC複習(一)

大家都知道,windows API編程以及其訊息處理,其過程都清晰可見,大體步驟如下:1)聲明訊息視窗類2)註冊視窗類別3)createwindows4)訊息獲得以及指派(windows procedure)。但是,對於MFC同樣是Windows程式,其流程卻顯得灰暗不明。現具體分析如下:在MFC中有兩個重要的類,CWinApp,CFrameWnd,它們兩個的存在在某種意義上來說代替了WinMain 和 WinProc的存在。對於任何一個MFC程式,都存在一個Application

拷貝建構函式和賦值操作符operator=分別在什麼時候被調用?

// 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 /////////////////

如何理解LPCTSTR、TCHAR

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或者其他相關的宏,

總頁數: 61357 1 .... 13965 13966 13967 13968 13969 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.