Time of Update: 2018-12-04
本章將會提示GDI控制代碼的每個細節和這些GDI控制代碼背後重要的資料結構,你也許對GDI資料結構的細節不感興趣,但是理解GDI/DirectDraw的內部設計會使你成為知識淵博的程式員。
Time of Update: 2018-12-04
Time of Update: 2018-12-04
第5章:作業1. 為了把一組進程當做一個單獨的組來處理,windows提供了一個作業(job)核心對象,它允許我們將進程組合在一起並建立一個”沙箱“來限制進程能夠做什麼。最好把工作物件想象成一個進程容器。理解:從這裡我們要注意關鍵,作業是管理進程集合的容器,所謂管理主要就是對進程行為加以限制!2. 如果進程已與一個作業關聯,就無法將當前進程或者它的任何子進程從作業中去除,這個安全特性可以確保進程無法擺脫對它施加的限制。3.
Time of Update: 2018-12-04
對於windows下的wchar, tchar以及其轉換函式, 比較煩人! 不過沒有辦法, 罵完了還是得總結總結, 把學習到的東西寫下來, 以備後用. 字元編碼的知識可以從維基裡獲得,UTF-16也就是Unicode,到ANSI也就是通常的一位元組英文字元,在轉換的時候的標誌是CP_ACP : CodePageAnsiCodePage 1 簡單的不包括中文的widechar字串轉化為普通的char.CString str("2012 0625");int
Time of Update: 2018-12-04
前兩周心血來潮,直接買了一本英文版的windows internals 6th edition,因為第四版雖然有潘愛民譯的中文,但上面的WDK版本已經不同,第六版本也剛出不久,人民郵電出版社直接拿到了大陸英文版的著作權,可喜可賀。 看了大概兩周,進度不快,才看了120頁左右。在公司拿一台棄用的電腦,裝了win7,配上WDK以及一些開發需要的工具,在官網上找了勘誤表,從頭到尾改完書上的錯誤,然後開始邊看邊把書上的例子基本上去在測試機上實踐了,感覺還算不錯。
Time of Update: 2018-12-04
這三周裡基本上每天都有4~6小時學習windows核心編程這本上書,就這個系列學習過程,小結一下情況。因為之前的工作內容有多線程相關內容,並且那個時候參考《windows多線程程式設計》已經作了系統的學習,這裡就沒提那方面的內容;記憶體對應檔在以前解析資料檔案的時候使用過,雖然沒有進行過系統學習,翻看了一下應該不是太大的問題;動態串連庫已經經過系統的學習,PE檔案結構也比較清楚了。至於堆的內容,需要補充學習的,因為在接下來我打算把C庫的原始碼過一遍,很多涉及堆的內容。
Time of Update: 2018-12-04
昨天為公司建一個Jenkins伺服器,要求是windows環境。注意,請用Administrator登入windows.windows 2008 server上安裝Jenkins很簡單,下載安裝後,自動安裝成Windows。然後馬上下載最新的Git在windows上面的安裝包,需要安裝Git bash進入Git bash,通過ssh-keygen產生公開金鑰和秘鑰對。將公開金鑰內容添加到到gitlab網站的jenkins帳號下。然後在Gitbash上執行兩句配置:$ git config
Time of Update: 2018-12-04
Windows通訊端可以在兩種模式下執行I/O操作:阻塞模式和非阻塞模式。在阻塞模式下,I/O操作完成前,執行操作的Winsock調用(例如send和recv)會一直等候下雲,不會立即返回到程式中。 我們現在就來研究一下阻塞模式是怎樣工作的。 阻塞模式的socket都遵照一種“生產者-消費者“模型來編製。下面先以一個最簡單的server-client程式碼範例:#include <winsock2.h>#include <stdio.h>#
Time of Update: 2018-12-04
最近在看windows網路編程,因為看的是翻譯版本,難免有錯誤,吐槽一下。如果你正好閱讀這本書,可以避免掉進某些我曾經掉進過去的坑裡面。翻譯錯誤,很可惡,但也很難免。 因為我看的是掃描版本,先上一段圖片,內容在第五章102頁,講述select模式的使用。
Time of Update: 2018-12-04
參考《windows網路編程》第五章。為鞏固知識,以問題作為驅動,檢查知識點。windows下 Select模型1. Select模型有什麼作用?可以判斷指定通訊端上是否有資料存在、是否可以寫入資料。防止因為使用send或recv過程引起的阻塞狀態。2. Select模型有什麼優點?可以減少原有阻塞模型需要使用的多個線程,減少資源消耗。3. Select函數原型是什嗎?Int select( Int nfds,//忽略不用 Fd_set
Time of Update: 2018-12-04
有人問到如何更改案頭背景,查了下MSDN,使用SystemParametersInfo就可以做到。 參考MSDN串連:http://msdn.microsoft.com/en-us/library/windows/desktop/ms724947(v=vs.85).aspx#Desktop#include <windows.h>#include <stdio.h>#pragma comment(lib, "user32.lib")int
Time of Update: 2018-12-04
本文只是初步的文檔,如有更改,恕不另行通知。概要:本文檔說明了如何使用 Microsoft Windows XP 來完成將外觀風格應用於應用程式時必需執行的常見任務。 目錄簡介ComCtl32.dll 版本 6外觀風格任務在未使用第三方擴充的應用程式中使用 ComCtl32.dll 版本 6在使用擴充、外掛程式或進程內啟動並執行 DLL 的應用程式中使用 ComCtl32 版本 6在控制台中或在通過 RunDll32.exe 啟動並執行 DLL 中使用 ComCtl32 版本
Time of Update: 2018-12-04
安裝目標系統是windows
Time of Update: 2018-12-04
現在有一個需求,將一個newlisp指令檔做成windows service,開機自動啟動。每隔一段時間,檢查一下系統內容,其他的進程是否還活著,等等。由於在windows上面運行newlisp,需要執行類似這種命令:newlisp a.lsp因此寫成一個bat檔案來執行上面的命令。這樣問題就轉化成如何將bat檔案安裝成windows service. 下面是詳細的例子。假設有一個daemon.lsp檔案,內容如下:(while true (println "hello, I am
Time of Update: 2018-12-04
我的GDAL編譯都是在VS2012提供的prompt windows裡面運行nmake完成的。但是如果想將編譯自動化,放到Jenkins裡面怎麼辦呢?首先沒有VS2012的工程,也不想費力去產生一個,那是繞圈。其實只需要解決一個問題,為什麼不能在普通的windows command prompt視窗運行nmake。那是因為nmke的路徑沒有載入環境變數裡面,好吧,那就手動加到PATH中。繼續,因為最終nmake讀取makefile.vc檔案,產生的還是cl和link指令.
Time of Update: 2018-12-04
/* * cheungmine * 2013-5-5 */#include <stdio.h>#include <stdlib.h>#include <time.h>#ifdef _MSC_VER #include <windows.h> #pragma warning (disable : 4996)#endif/* cairo api */#include "../lib/cairo/include/cairo.h"#include
Time of Update: 2018-12-04
如果安裝過VS2012的話,直接開啟一個VS 2012提供的控制台視窗,比如VS2012 x64 Native Tools Command Prompt.用下面的命令查看程式的頭部資訊:gdal_1.8_rtc>dumpbin /HEADERS gdal18.dllMicrosoft (R) COFF/PE Dumper Version 11.00.60610.1Copyright (C) Microsoft Corporation. All rights reserved.Dump
Time of Update: 2018-12-04
======================================================================= Windows7 x64 跨平台開發環境安裝配置 2013-6-16 ZhangLiang=======================================================================要求路徑:1) 所有開發包之根目錄:%DEVPACK_HOME% = C:\DEVPACK2
Time of Update: 2018-12-04
通常需要從在Resource中定義的ID轉換到HWND,那麼最常用的是GetDlgItem()函數! 在寫sdk程式時,不免要取得EditBox中的內容.方法有多種:我在這裡就介紹兩中:1.使用GetDlgItemTexteg:GetDlgItemText(hwnd,IDC_EDIT_OLDNAME,szOldName,MAX_PATH);2.使用windowsx.h中的宏Edit_GetText(hwndEdit,,,)這裡需要將ResourceID轉換成hwndeg:Edit_GetText
Time of Update: 2018-12-04
1.使用ANSI/UNICODE都支援的函數:包含TChar.h.這個裡麵包含了ANSI和Unicode的兩類函數.那麼:ANSI Unicode Both strcpy wcscpy _tcscpy其中:wcs 代表 wide character string