Windows開發基礎知識

2021-10-09 02:19:04 字數 1946 閱讀 1374

windows 開發指的是以windows api(winapi)進行在windows平台上的開發

參考資料

微軟針對windows進行開發的開發相關資訊

在windows開發經常會遇到一些隱晦難懂的api以及資料型別,已將常見型別寫入表中做對應

windows本地支援unicode字串使用在ui節點、檔名稱上,因為unicode字元可以相容所有文字和語言,windows使用utf16做代表,每個utf16的字元都佔16位大小,utf16也稱為寬字元,用於區分ansi字元,在c++中有w_char型別來支援寬字元,而在標頭檔案winnt.h同樣有定義

typedef

wchar_t wchar;

在隨後很多案例中你可以看到在定義寬字元文字、字串時在其前面放入l來定義

wchar_t a = l'a'

;wchar_t

*str = l"hello"

;

在windows api中對於處理字串等相關函式都會提供unicode版本和ansi版本的函式,如下案例一樣,通常會以aw結尾,對於ansi和unicode

除此之外在內部還會有乙個巨集定義,這個巨集定義可以幫助你根據情況呼叫對於版本的函式,如下所示

#ifdef unicode

#define setwindowtext setwindowtextw

#else

#define setwindowtext setwindowtexta

#endif

在通常情況下我們都會用unicode字串,並且也推薦使用unicode版本的函式來呼叫,第一是支援的字符集多。第二是unicode的效率相對ansi要高

當應用需要支援windows各個版本的系統時,根據目標平台為ansi或unicode字串編譯相同的**是很有用的,為此windows sdk提供了以下巨集定義去對映unicode或ansi子字串

巨集定義unicode

ansi

tchar

wchar_t

char

text(「x」)

l"x"

「x」windows就是通常見到的視窗成的框架,我們稱為應用視窗或者主視窗,window包含非客戶區域和客戶區域

windows handler代表window物件的引用,這是乙個不透明的資料型別(包含**和資料),它只是乙個數字被作業系統用於引用來操作,你可以將windows上所有視窗看作為windows視窗假想表內的資料,而引用正是對視窗的一對一對映

座標是通過與裝置無關的畫素為單位來測量的

winmain要麼是wwinmain,這裡它的簽名是wwinmain

// unicode版本

int winapi wwinmain

(hinstance hinstance, hinstance hprevinstance, pwstr pcmdline,

int ncmdshow)

;// ansi版本

int winmain

(hinstance hinstance, hinstance hprevinstance, pstr lpcmdline, int ncmdshow)

這裡4個引數分別是:

這個方法的返回值作業系統不會使用,但是你可以自己使用來返回一些特定意義的狀態值給你所寫的應用程式

開發基礎知識

msdn 使用應用程式域和程式集程式設計 描述如何建立和使用程式集和應用程式域。利用屬性擴充套件元資料 描述如何使用屬性自定義元資料。使用基型別 討論如何格式化和分析基礎資料型別以及如何使用正規表示式處理文字。集合和資料結構 討論在 net framework 中提供的各種集合型別,包括堆疊 佇列 ...

遊戲開發基礎知識

3d遊戲的數理基礎 向量1.1 向量的性質 1.2 點積 1.3 叉積 1.4 向量空間 矩陣2.1 矩陣的性質 2.2 線性方程組 2.3 逆矩陣 2.4 行列式 2.5 特徵值與特徵向量 2.6 對角化 變換3.1 通用變換 3.1.1 正交矩陣 3.1.2 手向性 3.2 縮放變換 3.3 旋...

iOS開發基礎知識

在ios中,你能看得見摸得著的東西基本上都是uiview,比如乙個按鈕 乙個文字標籤 乙個文字輸入框 乙個圖示等等,這些都是uiview。其實uiview之所以能顯示在螢幕上,完全是因為它內部的乙個圖層 在建立uiview物件時,uiview內部會自動建立乙個圖層 即calayer物件 通過uivi...