注:原始碼為學習《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物件函式以及核...