原创 框架窗口的創建

構造CFrameWnd窗口三種途徑: 1、使用Create函數直接構造 2、使用LoadFrame函數直接構造 3、通過文檔模板直接構造 在使用Create或LoadFrame之前,必須使用C++ New操作符在堆中構造框架窗口對象

原创 CDocument / CView / CFrameWnd

嚮導完成的創建DOC/VIEW過程主要做了以下幾件事情,     1.new了DOC,FRAME,VIEW三個對象      2.創建了FRAME,VIEW兩個窗口     3.將FRAME對象地址保存到APP對象中,將DOC對象地址保

原创 多項式大於小於

在算法分析導論中,看到了多項式大於和多項式小於這個概念,簡單的查了一下:   f(x)多項式大於g(x):存在實數e>0,使得f(x)>g(x)*n^e   f(x)多項式小於g(x): 存在實數e>0,使得f(x)<g(x)*n^e

原创 Dijkstra算法爲什麼權值不能是負值

Dijkstra算法當中將節點分爲已求得最短路徑的集合(記爲S)和未確定最短路徑的個集合(記爲U),歸入S集合的節點的最短路徑及其長度不再變更,如果邊

原创 CFont & LOGFONT

LOGFONT: 一個結構,用來邏輯上表達一個字體,比如LOGFONT.lfFaceName是字體的名字 HFONT: 一個句柄,相當於表示內存中的一個字體對象,它可以馬上拿來用 CFont: 是mfc對於HFONT的一種封裝      

原创 圖的鄰接表

#include <iostream> #define MAX_VERTEX_NUM 1024 using namespace std; typedef struct ArcNode { int adjvex; ArcNo

原创 延遲加載DLL

      MicrosoftVisualC++6.0提供了一個出色的新特性,它能夠使DLL的操作變得更加容易。這個特性稱爲延遲加載DLL。延遲加載

原创 讓你的C程序更有效率的10種方法

任何代碼的美麗不僅在於找到一個給定的問題的解決方案,但在它的簡單性,有效性,緊湊性和效率(內存)。設計的代碼比實際執行更難 。因此,每一個程序員當用C語言開發時,都應該保持這些基本的東西在頭腦中。 本文向你介紹規範你的C代碼的1

原创 一個microsoft的.exe程序的啓動過程

 學習windows 編程從mfc角度來說可分爲兩部分那就是WinMain函數以前的,和WinMain函 數以後的。前者涉及很多windows操作系統內部的知識,後者需要看mfc源碼。雖然大多數程序不需要了解太多關於os加載應用程序這方面

原创 遞歸樹

遞歸樹     遞歸樹的結點有兩個域,如下圖:     T(size)指問題大小爲size時,函數的複雜度。nonrec.cost指問題大小爲size時的非遞歸代價。      根結點的每個子結點都代表了這個問題分拆的一個子問題

原创 應用程序二進制接口(ABI)

每個操作系統都會爲運行在該系統下的應用程序提供應用程序二進制接口(ABI)。ABI包含了應用程序在這個系統下運行時必須遵守的變成約定。ABI總是包含一系列的系統調用和使用這些系統調用的方法,以及關於程序可以使用的內存地址和使用機器寄存器的

原创 關於VS的延遲加載dll的使用和理解

延遲加載dll: 當一個應用程序過多加載dll的時候,如果都是在啓動時加載,那麼無疑會減慢程序啓動速度,而且會讓初始的程序就佔用很大內存 空間,但並不是所有的dll都是經常使用的,有些可能僅在特殊情況下才會使用到,比如你需要打印功能時

原创 GetModuleHandle函數

VC聲明:        HMODULE GetModuleHandle (LPCTSTR lpModuleName);   功能說明   獲取一個應用程序或動態鏈接庫的模塊句柄   參數說明   lpModuleName 模塊名稱  

原创 暗時間

如果你有一臺計算機,你裝了一個系統之後就整天把它擱置在那裏,你覺得這臺計算機被實際使用了嗎?沒有。因爲CPU整天運行的就是空閒進程。運行空閒進程也是一

原创 快速排序

#include <iostream> using namespace std; void swap(int &a, int &b) { int c = a; a = b; b = c; } int Partiti