Windows核心程式設計學習八 事件核心物件

2021-06-15 09:51:59 字數 2798 閱讀 7968

注:原始碼為學習《windows核心程式設計》的一些嘗試,非原創。若能有助於一二訪客,幸甚。

/*

* 檔案:handshake.cpp

* 描述:學習《windows核心程式設計》

// 當客戶端提交請求到伺服器時觸發的事件核心物件

handle g_hevtrequestsubmitted;

// 當伺服器端完成操作返回結果給客戶端時觸發的核心物件

handle g_hevtresultreturned;

// 客戶端和伺服器端共享的記憶體緩衝區

tchar g_szsharedrequestandresultbuffer[1024];

typedef unsigned (__stdcall *pthread_start) (void *);

#define chbeginthreadex(psa, cbstacksize, pfnstartaddr, \

pvparam, dwcreateflags, pdwthreadid) \

((handle)_beginthreadex( \

(void *) (psa), \

(unsigned) (cbstacksize), \

(pthread_start) (pfnstartaddr), \

(void *) (pvparam), \

(unsigned) (dwcreateflags), \

(unsigned *) (pdwthreadid)))

#define chhandle_dlgmsg(hwnd, message, fn) \

case (message): return (setdlgmsgresult(hwnd, umsg, \

handle_##message((hwnd), (wparam), (lparam), (fn))))

// 伺服器執行緒

// 特殊字串標示伺服器執行緒退出

tchar g_szservershutdown = text("server shutdown");

// 當收到退出資訊時,伺服器端檢查主對話方塊是否已經退出

hwnd g_hmaindlg;

// 伺服器執行緒

dword winapi serverthread(pvoid pvparam)

// 觸發事件,告訴客戶端處理完成,可以顯示結果

setevent(g_hevtresultreturned);

} return 0;

}

int winapi _twinmain(hinstance hinstanceexe, hinstance, ptstr, int)

Python核心程式設計學習筆記(八)

集合set 集合是可變的容器 集合內的資料物件都是唯一的 不能重複多次 集合是無序的儲存結構,集合中的資料沒有先後順序關係 集合內的元素必須是不可變的物件 不能放列表字典 字典等可變物件 集合是可迭代物件 集合是相當於只有鍵,沒有值的字典 鍵則是集合的資料 建立空的集合 set 建立非空集合 s 集...

Windows核心程式設計

內容簡介 這是一本經典的windows核心程式設計指南,從第1版到第5版,引領著數十萬程式設計師走入windows開發陣營,培養了大批精英。作為windows開發人員的必備參考,本書是為打算理解windows的c和c 程式設計師精心設計的。第5版全面覆蓋windows xp,windows vist...

WINDOWS核心程式設計 核心物件

今天想把看的第三章的心得寫下來。這章主要介紹了核心物件。在windows中,核心物件是由作業系統來管理,儘管使用者能夠建立它,但是在建立之後,使用者對該核心物件的操作都是委託給作業系統。通常使用者建立和使用的物件分為 使用者物件 如 hicon createicon prama gdi物件函式以及核...